{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import geopandas as gpd\n",
    "import rasterio\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib widget\n",
    "from geopandas import GeoSeries\n",
    "import os\n",
    "import h5py\n",
    "from shapely.geometry import Point,Polygon\n",
    "import glob\n",
    "from rasterio import features\n",
    "from topolib import gda_lib"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "ATL06_list = glob.glob('/Users/hpm/HP_DRIVE/ICESat2-hackweek/topohack/data/*.h5')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['/Users/hpm/HP_DRIVE/ICESat2-hackweek/topohack/data/processed_ATL06_20181214194017_11790102_001_01.h5',\n",
       " '/Users/hpm/HP_DRIVE/ICESat2-hackweek/topohack/data/processed_ATL06_20181115210428_07370102_001_01.h5',\n",
       " '/Users/hpm/HP_DRIVE/ICESat2-hackweek/topohack/data/processed_ATL06_20190111063212_02110206_001_01.h5',\n",
       " '/Users/hpm/HP_DRIVE/ICESat2-hackweek/topohack/data/processed_ATL06_20190214164413_07370202_001_01.h5',\n",
       " '/Users/hpm/HP_DRIVE/ICESat2-hackweek/topohack/data/processed_ATL06_20181110092841_06530106_001_01.h5',\n",
       " '/Users/hpm/HP_DRIVE/ICESat2-hackweek/topohack/data/processed_ATL06_20190209050825_06530206_001_01.h5',\n",
       " '/Users/hpm/HP_DRIVE/ICESat2-hackweek/topohack/data/processed_ATL06_20190112181620_02340202_001_01.h5',\n",
       " '/Users/hpm/HP_DRIVE/ICESat2-hackweek/topohack/data/processed_ATL06_20181213075606_11560106_001_01.h5']"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ATL06_list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "ATL06_fn = '/Users/hpm/HP_DRIVE/ICESat2-hackweek/topohack/data/processed_ATL06_20181110092841_06530106_001_01.h5'"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# read a Raster Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "dem_fn = '/Users/hpm/HP_DRIVE/ICESat2-hackweek/topohack/data/USCOGM20160604f1a1_bareDEM_3p0m.tif'\n",
    "ds = rasterio.open(dem_fn)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# read a ATL06 hdf5 into a geodataframe"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "dataset_dict={'land_ice_segments':['h_li', 'delta_time','longitude','latitude'], 'land_ice_segments/ground_track':['x_atc']}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "ATL06_gdf = gda_lib.ATL06_2_gdf(ATL06_fn,dataset_dict)\n",
    "ATL06_gdf = ATL06_gdf.to_crs(ds.crs)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'/Users/hpm/HP_DRIVE/ICESat2-hackweek/topohack/data/processed_ATL06_20181110092841_06530106_001_01.h5'"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ATL06_fn"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "dem = ds.read(1)\n",
    "dem = np.ma.masked_equal(dem,gda_lib.get_ndv(ds))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "xmin,ymin,xmax,ymax = ds.bounds"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7fb34089d780>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig,ax = plt.subplots()\n",
    "im = ax.imshow(dem,cmap='inferno',extent=[xmin,xmax,ymin,ymax])\n",
    "plt.colorbar(im,label='HAE (m WGS84)')\n",
    "ATL06_gdf.plot(ax=ax)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>h_li</th>\n",
       "      <th>delta_time</th>\n",
       "      <th>longitude</th>\n",
       "      <th>latitude</th>\n",
       "      <th>x_atc</th>\n",
       "      <th>pair</th>\n",
       "      <th>beam</th>\n",
       "      <th>p_b</th>\n",
       "      <th>geometry</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2567.759033</td>\n",
       "      <td>2.707764e+07</td>\n",
       "      <td>-107.500013</td>\n",
       "      <td>39.094286</td>\n",
       "      <td>1.572077e+07</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0_0.0</td>\n",
       "      <td>POINT (802706.2921725033 4333073.953045337)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2570.402832</td>\n",
       "      <td>2.707764e+07</td>\n",
       "      <td>-107.500033</td>\n",
       "      <td>39.094106</td>\n",
       "      <td>1.572079e+07</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0_0.0</td>\n",
       "      <td>POINT (802705.2907672024 4333053.91556992)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2574.306396</td>\n",
       "      <td>2.707764e+07</td>\n",
       "      <td>-107.500054</td>\n",
       "      <td>39.093926</td>\n",
       "      <td>1.572081e+07</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0_0.0</td>\n",
       "      <td>POINT (802704.255851483 4333033.884023974)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2578.582031</td>\n",
       "      <td>2.707764e+07</td>\n",
       "      <td>-107.500075</td>\n",
       "      <td>39.093746</td>\n",
       "      <td>1.572083e+07</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0_0.0</td>\n",
       "      <td>POINT (802703.2260833569 4333013.849857506)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2583.051025</td>\n",
       "      <td>2.707764e+07</td>\n",
       "      <td>-107.500096</td>\n",
       "      <td>39.093566</td>\n",
       "      <td>1.572085e+07</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0_0.0</td>\n",
       "      <td>POINT (802702.2015954845 4332993.813512066)</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          h_li    delta_time   longitude   latitude         x_atc  pair  beam  \\\n",
       "0  2567.759033  2.707764e+07 -107.500013  39.094286  1.572077e+07   1.0   0.0   \n",
       "1  2570.402832  2.707764e+07 -107.500033  39.094106  1.572079e+07   1.0   0.0   \n",
       "2  2574.306396  2.707764e+07 -107.500054  39.093926  1.572081e+07   1.0   0.0   \n",
       "3  2578.582031  2.707764e+07 -107.500075  39.093746  1.572083e+07   1.0   0.0   \n",
       "4  2583.051025  2.707764e+07 -107.500096  39.093566  1.572085e+07   1.0   0.0   \n",
       "\n",
       "       p_b                                     geometry  \n",
       "0  1.0_0.0  POINT (802706.2921725033 4333073.953045337)  \n",
       "1  1.0_0.0   POINT (802705.2907672024 4333053.91556992)  \n",
       "2  1.0_0.0   POINT (802704.255851483 4333033.884023974)  \n",
       "3  1.0_0.0  POINT (802703.2260833569 4333013.849857506)  \n",
       "4  1.0_0.0  POINT (802702.2015954845 4332993.813512066)  "
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ATL06_gdf.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "             h_li    delta_time   longitude   latitude         x_atc  pair  \\\n",
      "0             NaN  3.005180e+07 -107.839876  38.875004  4.325630e+06   1.0   \n",
      "1             NaN  3.005180e+07 -107.839898  38.875186  4.325650e+06   1.0   \n",
      "2             NaN  3.005180e+07 -107.839920  38.875367  4.325670e+06   1.0   \n",
      "3             NaN  3.005180e+07 -107.839941  38.875546  4.325690e+06   1.0   \n",
      "4             NaN  3.005180e+07 -107.839963  38.875724  4.325710e+06   1.0   \n",
      "5             NaN  3.005180e+07 -107.839986  38.875906  4.325730e+06   1.0   \n",
      "6     2008.933838  3.005180e+07 -107.840008  38.876086  4.325750e+06   1.0   \n",
      "7     2008.607910  3.005180e+07 -107.840031  38.876266  4.325770e+06   1.0   \n",
      "8     2008.004883  3.005180e+07 -107.840053  38.876446  4.325790e+06   1.0   \n",
      "9     2007.555054  3.005180e+07 -107.840076  38.876625  4.325810e+06   1.0   \n",
      "10    2007.105957  3.005180e+07 -107.840099  38.876805  4.325830e+06   1.0   \n",
      "11    2006.441895  3.005180e+07 -107.840121  38.876985  4.325850e+06   1.0   \n",
      "12    2005.723022  3.005180e+07 -107.840144  38.877165  4.325870e+06   1.0   \n",
      "13    2004.888062  3.005180e+07 -107.840166  38.877344  4.325890e+06   1.0   \n",
      "14    2004.194946  3.005180e+07 -107.840189  38.877524  4.325910e+06   1.0   \n",
      "15    2003.952881  3.005180e+07 -107.840211  38.877704  4.325930e+06   1.0   \n",
      "16    2004.052246  3.005180e+07 -107.840233  38.877883  4.325950e+06   1.0   \n",
      "17    2003.946533  3.005180e+07 -107.840255  38.878063  4.325970e+06   1.0   \n",
      "18    2003.510254  3.005180e+07 -107.840276  38.878243  4.325991e+06   1.0   \n",
      "19    1997.154175  3.005180e+07 -107.840298  38.878423  4.326011e+06   1.0   \n",
      "20    1986.533081  3.005180e+07 -107.840320  38.878603  4.326031e+06   1.0   \n",
      "21    1974.731323  3.005180e+07 -107.840341  38.878782  4.326051e+06   1.0   \n",
      "22    1963.938965  3.005180e+07 -107.840363  38.878962  4.326071e+06   1.0   \n",
      "23    1953.897827  3.005180e+07 -107.840385  38.879142  4.326091e+06   1.0   \n",
      "24    1944.985840  3.005180e+07 -107.840407  38.879322  4.326111e+06   1.0   \n",
      "25    1936.817871  3.005180e+07 -107.840429  38.879501  4.326131e+06   1.0   \n",
      "26    1929.151978  3.005180e+07 -107.840452  38.879681  4.326151e+06   1.0   \n",
      "27    1923.148926  3.005180e+07 -107.840474  38.879861  4.326171e+06   1.0   \n",
      "28    1918.872314  3.005180e+07 -107.840498  38.880040  4.326191e+06   1.0   \n",
      "29    1916.176025  3.005180e+07 -107.840521  38.880220  4.326211e+06   1.0   \n",
      "...           ...           ...         ...        ...           ...   ...   \n",
      "2326  2440.036865  3.005181e+07 -107.816573  39.294643  4.371814e+06   3.0   \n",
      "2327  2443.727539  3.005181e+07 -107.816596  39.294823  4.371834e+06   3.0   \n",
      "2328  2449.170166  3.005181e+07 -107.816619  39.295003  4.371854e+06   3.0   \n",
      "2329  2457.436279  3.005181e+07 -107.816643  39.295182  4.371874e+06   3.0   \n",
      "2330  2467.791016  3.005181e+07 -107.816667  39.295362  4.371894e+06   3.0   \n",
      "2331  2478.245117  3.005181e+07 -107.816691  39.295541  4.371914e+06   3.0   \n",
      "2332  2487.234863  3.005181e+07 -107.816715  39.295721  4.371935e+06   3.0   \n",
      "2333  2495.337891  3.005181e+07 -107.816739  39.295901  4.371955e+06   3.0   \n",
      "2334  2502.686768  3.005181e+07 -107.816762  39.296080  4.371975e+06   3.0   \n",
      "2335  2509.409180  3.005181e+07 -107.816786  39.296260  4.371995e+06   3.0   \n",
      "2336  2512.270020  3.005181e+07 -107.816808  39.296440  4.372015e+06   3.0   \n",
      "2337  2506.443604  3.005181e+07 -107.816829  39.296619  4.372035e+06   3.0   \n",
      "2338  2498.467529  3.005181e+07 -107.816849  39.296799  4.372055e+06   3.0   \n",
      "2339  2490.257324  3.005181e+07 -107.816869  39.296979  4.372075e+06   3.0   \n",
      "2340  2480.845703  3.005181e+07 -107.816889  39.297159  4.372095e+06   3.0   \n",
      "2341  2472.012939  3.005181e+07 -107.816908  39.297339  4.372115e+06   3.0   \n",
      "2342  2464.308350  3.005181e+07 -107.816928  39.297519  4.372135e+06   3.0   \n",
      "2343  2458.176025  3.005181e+07 -107.816948  39.297699  4.372155e+06   3.0   \n",
      "2344  2453.012695  3.005181e+07 -107.816968  39.297878  4.372175e+06   3.0   \n",
      "2345  2448.250244  3.005181e+07 -107.816988  39.298058  4.372195e+06   3.0   \n",
      "2346  2446.335205  3.005181e+07 -107.817010  39.298238  4.372215e+06   3.0   \n",
      "2347  2444.408936  3.005181e+07 -107.817031  39.298418  4.372235e+06   3.0   \n",
      "2348  2439.978516  3.005181e+07 -107.817053  39.298598  4.372255e+06   3.0   \n",
      "2349  2436.947754  3.005181e+07 -107.817076  39.298777  4.372275e+06   3.0   \n",
      "2350  2436.160400  3.005181e+07 -107.817099  39.298957  4.372295e+06   3.0   \n",
      "2351  2433.708252  3.005181e+07 -107.817122  39.299137  4.372315e+06   3.0   \n",
      "2352  2429.325439  3.005181e+07 -107.817146  39.299316  4.372335e+06   3.0   \n",
      "2353  2425.294189  3.005181e+07 -107.817170  39.299496  4.372355e+06   3.0   \n",
      "2354  2422.871826  3.005181e+07 -107.817193  39.299673  4.372376e+06   3.0   \n",
      "2355  2420.230469  3.005181e+07 -107.817218  39.299855  4.372396e+06   3.0   \n",
      "\n",
      "      beam      p_b                                      geometry  \n",
      "0      0.0  1.0_0.0  POINT (-107.8398758986926 38.87500411813308)  \n",
      "1      0.0  1.0_0.0   POINT (-107.8398976648506 38.8751855614193)  \n",
      "2      0.0  1.0_0.0  POINT (-107.8399197475106 38.87536707547996)  \n",
      "3      0.0  1.0_0.0  POINT (-107.8399414234825 38.87554555753761)  \n",
      "4      0.0  1.0_0.0  POINT (-107.8399632580828 38.87572415565009)  \n",
      "5      0.0  1.0_0.0  POINT (-107.8399856431907 38.87590603830962)  \n",
      "6      0.0  1.0_0.0  POINT (-107.8400080016669 38.87608632186303)  \n",
      "7      0.0  1.0_0.0  POINT (-107.8400305693495 38.87626603088755)  \n",
      "8      0.0  1.0_0.0  POINT (-107.8400532434058 38.87644573244793)  \n",
      "9      0.0  1.0_0.0   POINT (-107.840075959099 38.87662542531231)  \n",
      "10     0.0  1.0_0.0  POINT (-107.8400986716555 38.87680511926953)  \n",
      "11     0.0  1.0_0.0  POINT (-107.8401213348426 38.87698478509688)  \n",
      "12     0.0  1.0_0.0  POINT (-107.8401439246598 38.87716452743038)  \n",
      "13     0.0  1.0_0.0  POINT (-107.8401663878503 38.87734424432576)  \n",
      "14     0.0  1.0_0.0  POINT (-107.8401886815563 38.87752397264954)  \n",
      "15     0.0  1.0_0.0  POINT (-107.8402108073679 38.87770371550049)  \n",
      "16     0.0  1.0_0.0  POINT (-107.8402327450957 38.87788347221774)  \n",
      "17     0.0  1.0_0.0   POINT (-107.8402545424107 38.8780632053425)  \n",
      "18     0.0  1.0_0.0   POINT (-107.840276211659 38.87824301815557)  \n",
      "19     0.0  1.0_0.0  POINT (-107.8402980093416 38.87842277921968)  \n",
      "20     0.0  1.0_0.0   POINT (-107.8403198008657 38.8786025424041)  \n",
      "21     0.0  1.0_0.0  POINT (-107.8403414943436 38.87878232031217)  \n",
      "22     0.0  1.0_0.0   POINT (-107.8403631852035 38.8789620932587)  \n",
      "23     0.0  1.0_0.0  POINT (-107.8403850033679 38.87914182095035)  \n",
      "24     0.0  1.0_0.0  POINT (-107.8404069977186 38.87932160907052)  \n",
      "25     0.0  1.0_0.0   POINT (-107.8404291866984 38.8795013455766)  \n",
      "26     0.0  1.0_0.0  POINT (-107.8404516247365 38.87968106207876)  \n",
      "27     0.0  1.0_0.0  POINT (-107.8404743876871 38.87986075532133)  \n",
      "28     0.0  1.0_0.0  POINT (-107.8404975098431 38.88004041864308)  \n",
      "29     0.0  1.0_0.0    POINT (-107.840520781699 38.8802200329581)  \n",
      "...    ...      ...                                           ...  \n",
      "2326   1.0  3.0_1.0  POINT (-107.8165730078776 39.29464340743657)  \n",
      "2327   1.0  3.0_1.0    POINT (-107.8165957460488 39.294823022143)  \n",
      "2328   1.0  3.0_1.0   POINT (-107.8166189053547 39.2950027227467)  \n",
      "2329   1.0  3.0_1.0  POINT (-107.8166425623422 39.29518233153009)  \n",
      "2330   1.0  3.0_1.0  POINT (-107.8166666806109 39.29536190183764)  \n",
      "2331   1.0  3.0_1.0  POINT (-107.8166909443517 39.29554146112798)  \n",
      "2332   1.0  3.0_1.0   POINT (-107.816715035122 39.29572103467725)  \n",
      "2333   1.0  3.0_1.0  POINT (-107.8167388969286 39.29590062774005)  \n",
      "2334   1.0  3.0_1.0  POINT (-107.8167624686905 39.29608024269488)  \n",
      "2335   1.0  3.0_1.0  POINT (-107.8167856552219 39.29625988289946)  \n",
      "2336   1.0  3.0_1.0  POINT (-107.8168079941084 39.29643952359386)  \n",
      "2337   1.0  3.0_1.0  POINT (-107.8168290087773 39.29661938103243)  \n",
      "2338   1.0  3.0_1.0  POINT (-107.8168492030598 39.29679924688789)  \n",
      "2339   1.0  3.0_1.0  POINT (-107.8168690653378 39.29697913548057)  \n",
      "2340   1.0  3.0_1.0   POINT (-107.8168886120832 39.2971590447818)  \n",
      "2341   1.0  3.0_1.0  POINT (-107.8169081387262 39.29733895678859)  \n",
      "2342   1.0  3.0_1.0  POINT (-107.8169277637163 39.29751886360923)  \n",
      "2343   1.0  3.0_1.0  POINT (-107.8169477463127 39.29769874029851)  \n",
      "2344   1.0  3.0_1.0  POINT (-107.8169679405195 39.29787786097175)  \n",
      "2345   1.0  3.0_1.0  POINT (-107.8169884914649 39.29805779371029)  \n",
      "2346   1.0  3.0_1.0   POINT (-107.8170097803253 39.2982382143549)  \n",
      "2347   1.0  3.0_1.0  POINT (-107.8170313947779 39.29841797258348)  \n",
      "2348   1.0  3.0_1.0  POINT (-107.8170531941531 39.29859771859318)  \n",
      "2349   1.0  3.0_1.0   POINT (-107.8170755983952 39.2987774145957)  \n",
      "2350   1.0  3.0_1.0  POINT (-107.8170987437869 39.29895705684574)  \n",
      "2351   1.0  3.0_1.0  POINT (-107.8171220602189 39.29913669160304)  \n",
      "2352   1.0  3.0_1.0  POINT (-107.8171456887601 39.29931630628184)  \n",
      "2353   1.0  3.0_1.0  POINT (-107.8171696855341 39.29949588310428)  \n",
      "2354   1.0  3.0_1.0  POINT (-107.8171934560414 39.29967277669042)  \n",
      "2355   1.0  3.0_1.0  POINT (-107.8172175913989 39.29985454841333)  \n",
      "\n",
      "[14155 rows x 9 columns]\n",
      "             h_li    delta_time   longitude   latitude         x_atc  pair  \\\n",
      "0     2239.131592  2.755125e+07 -108.099427  38.875244  4.325656e+06   1.0   \n",
      "1     2240.894043  2.755125e+07 -108.099449  38.875423  4.325676e+06   1.0   \n",
      "2     2243.826416  2.755125e+07 -108.099472  38.875603  4.325696e+06   1.0   \n",
      "3     2244.384521  2.755125e+07 -108.099495  38.875783  4.325716e+06   1.0   \n",
      "4             NaN  2.755125e+07 -108.099518  38.875962  4.325736e+06   1.0   \n",
      "5             NaN  2.755125e+07 -108.099541  38.876142  4.325756e+06   1.0   \n",
      "6     2242.230469  2.755125e+07 -108.099563  38.876322  4.325776e+06   1.0   \n",
      "7     2240.812012  2.755125e+07 -108.099585  38.876502  4.325796e+06   1.0   \n",
      "8     2239.176758  2.755125e+07 -108.099606  38.876681  4.325816e+06   1.0   \n",
      "9     2239.391846  2.755125e+07 -108.099628  38.876861  4.325836e+06   1.0   \n",
      "10    2240.221436  2.755125e+07 -108.099649  38.877041  4.325856e+06   1.0   \n",
      "11    2242.828613  2.755125e+07 -108.099671  38.877221  4.325876e+06   1.0   \n",
      "12    2247.996582  2.755125e+07 -108.099693  38.877400  4.325896e+06   1.0   \n",
      "13    2255.497070  2.755125e+07 -108.099716  38.877580  4.325916e+06   1.0   \n",
      "14    2262.882080  2.755125e+07 -108.099738  38.877760  4.325936e+06   1.0   \n",
      "15    2269.655273  2.755125e+07 -108.099761  38.877940  4.325956e+06   1.0   \n",
      "16    2276.107422  2.755125e+07 -108.099784  38.878119  4.325976e+06   1.0   \n",
      "17    2281.610596  2.755125e+07 -108.099807  38.878299  4.325996e+06   1.0   \n",
      "18    2287.504883  2.755125e+07 -108.099830  38.878479  4.326016e+06   1.0   \n",
      "19    2291.929443  2.755125e+07 -108.099852  38.878658  4.326036e+06   1.0   \n",
      "20    2295.200195  2.755125e+07 -108.099875  38.878838  4.326057e+06   1.0   \n",
      "21            NaN  2.755125e+07 -108.099897  38.879018  4.326077e+06   1.0   \n",
      "22    2304.593018  2.755125e+07 -108.099918  38.879198  4.326097e+06   1.0   \n",
      "23    2306.238525  2.755125e+07 -108.099940  38.879377  4.326117e+06   1.0   \n",
      "24    2304.932129  2.755125e+07 -108.099961  38.879557  4.326137e+06   1.0   \n",
      "25    2302.031494  2.755125e+07 -108.099982  38.879737  4.326157e+06   1.0   \n",
      "26    2295.791748  2.755125e+07 -108.100003  38.879917  4.326177e+06   1.0   \n",
      "27    2288.742676  2.755125e+07 -108.100024  38.880097  4.326197e+06   1.0   \n",
      "28    2285.735352  2.755125e+07 -108.100047  38.880276  4.326217e+06   1.0   \n",
      "29    2285.800293  2.755125e+07 -108.100070  38.880456  4.326237e+06   1.0   \n",
      "...           ...           ...         ...        ...           ...   ...   \n",
      "2283  2184.819580  2.755126e+07 -108.076289  39.293599  4.371700e+06   3.0   \n",
      "2284  2190.025879  2.755126e+07 -108.076312  39.293780  4.371720e+06   3.0   \n",
      "2285  2189.038086  2.755126e+07 -108.076333  39.293960  4.371740e+06   3.0   \n",
      "2286  2182.728027  2.755126e+07 -108.076354  39.294140  4.371760e+06   3.0   \n",
      "2287  2175.128662  2.755126e+07 -108.076374  39.294320  4.371780e+06   3.0   \n",
      "2288  2168.567627  2.755126e+07 -108.076394  39.294500  4.371800e+06   3.0   \n",
      "2289  2163.217773  2.755126e+07 -108.076416  39.294679  4.371820e+06   3.0   \n",
      "2290  2157.999023  2.755126e+07 -108.076436  39.294848  4.371841e+06   3.0   \n",
      "2291  2153.918213  2.755126e+07 -108.076458  39.295035  4.371861e+06   3.0   \n",
      "2292  2150.724609  2.755126e+07 -108.076479  39.295213  4.371881e+06   3.0   \n",
      "2293          NaN  2.755126e+07 -108.076500  39.295392  4.371901e+06   3.0   \n",
      "2294          NaN  2.755126e+07 -108.076521  39.295578  4.371921e+06   3.0   \n",
      "2295          NaN  2.755126e+07 -108.076539  39.295750  4.371941e+06   3.0   \n",
      "2296          NaN  2.755126e+07 -108.076558  39.295932  4.371961e+06   3.0   \n",
      "2297  2113.294434  2.755126e+07 -108.076576  39.296118  4.371981e+06   3.0   \n",
      "2298  2103.545898  2.755126e+07 -108.076593  39.296296  4.372001e+06   3.0   \n",
      "2299  2075.080078  2.755126e+07 -108.076626  39.296659  4.372041e+06   3.0   \n",
      "2300  2060.716064  2.755126e+07 -108.076642  39.296839  4.372061e+06   3.0   \n",
      "2301  2047.076416  2.755126e+07 -108.076660  39.297019  4.372081e+06   3.0   \n",
      "2302  2033.863037  2.755126e+07 -108.076677  39.297199  4.372101e+06   3.0   \n",
      "2303  1966.314209  2.755126e+07 -108.076792  39.298279  4.372221e+06   3.0   \n",
      "2304  1969.000610  2.755126e+07 -108.076814  39.298458  4.372241e+06   3.0   \n",
      "2305  1975.366455  2.755126e+07 -108.076837  39.298638  4.372261e+06   3.0   \n",
      "2306  1986.035645  2.755126e+07 -108.076860  39.298818  4.372282e+06   3.0   \n",
      "2307  1999.678101  2.755126e+07 -108.076885  39.298997  4.372302e+06   3.0   \n",
      "2308  2012.892578  2.755126e+07 -108.076909  39.299177  4.372322e+06   3.0   \n",
      "2309          NaN  2.755126e+07 -108.076934  39.299356  4.372342e+06   3.0   \n",
      "2310  2043.918457  2.755126e+07 -108.076959  39.299536  4.372362e+06   3.0   \n",
      "2311  2051.874756  2.755126e+07 -108.076983  39.299715  4.372382e+06   3.0   \n",
      "2312  2054.694336  2.755126e+07 -108.077005  39.299895  4.372402e+06   3.0   \n",
      "\n",
      "      beam      p_b                                      geometry  \n",
      "0      0.0  1.0_0.0    POINT (-108.099426992284 38.8752436164104)  \n",
      "1      0.0  1.0_0.0  POINT (-108.0994494342065 38.87542333261052)  \n",
      "2      0.0  1.0_0.0   POINT (-108.0994723257272 38.8756030132746)  \n",
      "3      0.0  1.0_0.0  POINT (-108.0994952387356 38.87578269879221)  \n",
      "4      0.0  1.0_0.0    POINT (-108.099517961945 38.8759623930692)  \n",
      "5      0.0  1.0_0.0  POINT (-108.0995406564088 38.87614208909674)  \n",
      "6      0.0  1.0_0.0  POINT (-108.0995631181041 38.87632177885381)  \n",
      "7      0.0  1.0_0.0  POINT (-108.0995850803884 38.87650156898437)  \n",
      "8      0.0  1.0_0.0  POINT (-108.0996064361064 38.87668137128016)  \n",
      "9      0.0  1.0_0.0  POINT (-108.0996279649818 38.87686115947073)  \n",
      "10     0.0  1.0_0.0  POINT (-108.0996494794774 38.87704094566572)  \n",
      "11     0.0  1.0_0.0  POINT (-108.0996711904518 38.87722071324188)  \n",
      "12     0.0  1.0_0.0  POINT (-108.0996932048422 38.87740046529652)  \n",
      "13     0.0  1.0_0.0   POINT (-108.099715505215 38.87758016242774)  \n",
      "14     0.0  1.0_0.0  POINT (-108.0997382363927 38.87775989339703)  \n",
      "15     0.0  1.0_0.0  POINT (-108.0997611845775 38.87793957605646)  \n",
      "16     0.0  1.0_0.0  POINT (-108.0997841541533 38.87811925314183)  \n",
      "17     0.0  1.0_0.0  POINT (-108.0998070727699 38.87829893741462)  \n",
      "18     0.0  1.0_0.0  POINT (-108.0998299007967 38.87847862637621)  \n",
      "19     0.0  1.0_0.0  POINT (-108.0998524233014 38.87865829318396)  \n",
      "20     0.0  1.0_0.0    POINT (-108.09987474085 38.87883806311041)  \n",
      "21     0.0  1.0_0.0  POINT (-108.0998968264342 38.87901781201294)  \n",
      "22     0.0  1.0_0.0    POINT (-108.09991844079 38.87919759338033)  \n",
      "23     0.0  1.0_0.0  POINT (-108.0999397949354 38.87937739163264)  \n",
      "24     0.0  1.0_0.0   POINT (-108.0999609171501 38.8795572061359)  \n",
      "25     0.0  1.0_0.0  POINT (-108.0999820189856 38.87973702659955)  \n",
      "26     0.0  1.0_0.0  POINT (-108.1000031534327 38.87991680887288)  \n",
      "27     0.0  1.0_0.0   POINT (-108.1000244538927 38.8800966499328)  \n",
      "28     0.0  1.0_0.0  POINT (-108.1000467977079 38.88027637944955)  \n",
      "29     0.0  1.0_0.0  POINT (-108.1000698867247 38.88045605342229)  \n",
      "...    ...      ...                                           ...  \n",
      "2283   1.0  3.0_1.0  POINT (-108.0762887660519 39.29359937316891)  \n",
      "2284   1.0  3.0_1.0  POINT (-108.0763118675703 39.29378018274639)  \n",
      "2285   1.0  3.0_1.0  POINT (-108.0763333136605 39.29396001484121)  \n",
      "2286   1.0  3.0_1.0  POINT (-108.0763536544104 39.29413986742942)  \n",
      "2287   1.0  3.0_1.0  POINT (-108.0763737194281 39.29431973582328)  \n",
      "2288   1.0  3.0_1.0  POINT (-108.0763943678737 39.29449956462994)  \n",
      "2289   1.0  3.0_1.0  POINT (-108.0764156769323 39.29467934769939)  \n",
      "2290   1.0  3.0_1.0  POINT (-108.0764358191138 39.29484832588165)  \n",
      "2291   1.0  3.0_1.0  POINT (-108.0764580672399 39.29503458100031)  \n",
      "2292   1.0  3.0_1.0  POINT (-108.0764793982176 39.29521277850032)  \n",
      "2293   1.0  3.0_1.0  POINT (-108.0765000244971 39.29539231625163)  \n",
      "2294   1.0  3.0_1.0   POINT (-108.0765205615342 39.2955783158292)  \n",
      "2295   1.0  3.0_1.0  POINT (-108.0765391076569 39.29575034994359)  \n",
      "2296   1.0  3.0_1.0  POINT (-108.0765575966096 39.29593241121062)  \n",
      "2297   1.0  3.0_1.0  POINT (-108.0765756946288 39.29611837278306)  \n",
      "2298   1.0  3.0_1.0  POINT (-108.0765928211081 39.29629589591301)  \n",
      "2299   1.0  3.0_1.0  POINT (-108.0766257845815 39.29665874211477)  \n",
      "2300   1.0  3.0_1.0  POINT (-108.0766424035665 39.29683886598662)  \n",
      "2301   1.0  3.0_1.0  POINT (-108.0766595448599 39.29701895529632)  \n",
      "2302   1.0  3.0_1.0  POINT (-108.0766774052949 39.29719899709801)  \n",
      "2303   1.0  3.0_1.0    POINT (-108.07679169881 39.29827868473036)  \n",
      "2304   1.0  3.0_1.0   POINT (-108.0768139973875 39.2984583899306)  \n",
      "2305   1.0  3.0_1.0  POINT (-108.0768365991937 39.29863807957745)  \n",
      "2306   1.0  3.0_1.0  POINT (-108.0768602636981 39.29881768800173)  \n",
      "2307   1.0  3.0_1.0  POINT (-108.0768846554737 39.29899723413168)  \n",
      "2308   1.0  3.0_1.0  POINT (-108.0769091624458 39.29917671447874)  \n",
      "2309   1.0  3.0_1.0  POINT (-108.0769344927331 39.29935626020234)  \n",
      "2310   1.0  3.0_1.0   POINT (-108.076959354285 39.29953577717779)  \n",
      "2311   1.0  3.0_1.0  POINT (-108.0769827711023 39.29971540803514)  \n",
      "2312   1.0  3.0_1.0  POINT (-108.0770051123258 39.29989511156089)  \n",
      "\n",
      "[14022 rows x 9 columns]\n",
      "            h_li    delta_time   longitude   latitude         x_atc  pair  \\\n",
      "0    3210.009766  3.242385e+07 -107.721410  39.148475  1.571446e+07   1.0   \n",
      "1    3213.227051  3.242385e+07 -107.721582  39.147037  1.571462e+07   1.0   \n",
      "2    3217.946777  3.242385e+07 -107.721673  39.146318  1.571470e+07   1.0   \n",
      "3    3218.962402  3.242385e+07 -107.721697  39.146138  1.571472e+07   1.0   \n",
      "4    3221.253174  3.242385e+07 -107.721744  39.145779  1.571476e+07   1.0   \n",
      "5    3221.974121  3.242385e+07 -107.721767  39.145600  1.571478e+07   1.0   \n",
      "6    3221.749268  3.242385e+07 -107.721791  39.145420  1.571480e+07   1.0   \n",
      "7    3223.210938  3.242385e+07 -107.721814  39.145240  1.571482e+07   1.0   \n",
      "8    3224.406738  3.242385e+07 -107.721858  39.144881  1.571486e+07   1.0   \n",
      "9    3225.162842  3.242385e+07 -107.721880  39.144701  1.571488e+07   1.0   \n",
      "10   3226.098389  3.242385e+07 -107.721901  39.144521  1.571490e+07   1.0   \n",
      "11   3226.826904  3.242385e+07 -107.721922  39.144341  1.571492e+07   1.0   \n",
      "12   3232.188232  3.242385e+07 -107.721965  39.143982  1.571496e+07   1.0   \n",
      "13   3234.422607  3.242385e+07 -107.721986  39.143802  1.571498e+07   1.0   \n",
      "14   3235.803467  3.242385e+07 -107.722008  39.143622  1.571500e+07   1.0   \n",
      "15   3236.238525  3.242385e+07 -107.722029  39.143442  1.571502e+07   1.0   \n",
      "16   3236.051514  3.242385e+07 -107.722051  39.143263  1.571504e+07   1.0   \n",
      "17   3236.010010  3.242385e+07 -107.722073  39.143083  1.571506e+07   1.0   \n",
      "18   3235.514404  3.242385e+07 -107.722095  39.142903  1.571508e+07   1.0   \n",
      "19   3226.835449  3.242385e+07 -107.722272  39.141465  1.571524e+07   1.0   \n",
      "20   3235.356934  3.242385e+07 -107.723103  39.134634  1.571600e+07   1.0   \n",
      "21   3230.785156  3.242385e+07 -107.724203  39.125647  1.571701e+07   1.0   \n",
      "22   3224.939453  3.242385e+07 -107.725162  39.117737  1.571789e+07   1.0   \n",
      "23   3224.745605  3.242385e+07 -107.725186  39.117557  1.571791e+07   1.0   \n",
      "24   3224.721680  3.242385e+07 -107.725209  39.117377  1.571793e+07   1.0   \n",
      "25   3223.376221  3.242385e+07 -107.725303  39.116659  1.571801e+07   1.0   \n",
      "26   3217.333008  3.242385e+07 -107.725371  39.116120  1.571807e+07   1.0   \n",
      "27   3214.754639  3.242385e+07 -107.725394  39.115940  1.571809e+07   1.0   \n",
      "28   3213.069336  3.242385e+07 -107.725416  39.115760  1.571811e+07   1.0   \n",
      "29   3211.326660  3.242385e+07 -107.725439  39.115581  1.571813e+07   1.0   \n",
      "..           ...           ...         ...        ...           ...   ...   \n",
      "74           NaN  3.242385e+07 -107.775316  39.019223  1.572919e+07   2.0   \n",
      "75           NaN  3.242385e+07 -107.775337  39.019061  1.572921e+07   2.0   \n",
      "76           NaN  3.242385e+07 -107.775377  39.018843  1.572923e+07   2.0   \n",
      "77           NaN  3.242385e+07 -107.775398  39.018681  1.572925e+07   2.0   \n",
      "78           NaN  3.242385e+07 -107.775417  39.018520  1.572927e+07   2.0   \n",
      "79           NaN  3.242385e+07 -107.775460  39.018127  1.572931e+07   2.0   \n",
      "80           NaN  3.242385e+07 -107.775491  39.017939  1.572933e+07   2.0   \n",
      "81           NaN  3.242385e+07 -107.775520  39.017754  1.572935e+07   2.0   \n",
      "82           NaN  3.242385e+07 -107.775535  39.017557  1.572937e+07   2.0   \n",
      "83           NaN  3.242385e+07 -107.775549  39.017366  1.572939e+07   2.0   \n",
      "84           NaN  3.242385e+07 -107.775567  39.017222  1.572941e+07   2.0   \n",
      "85           NaN  3.242385e+07 -107.775624  39.016862  1.572945e+07   2.0   \n",
      "86           NaN  3.242385e+07 -107.775647  39.016680  1.572947e+07   2.0   \n",
      "87           NaN  3.242385e+07 -107.775816  39.015418  1.572961e+07   2.0   \n",
      "88           NaN  3.242385e+07 -107.776346  39.011301  1.573008e+07   2.0   \n",
      "89           NaN  3.242385e+07 -107.776645  39.008794  1.573036e+07   2.0   \n",
      "90           NaN  3.242385e+07 -107.776668  39.008613  1.573038e+07   2.0   \n",
      "91           NaN  3.242385e+07 -107.776690  39.008438  1.573040e+07   2.0   \n",
      "92           NaN  3.242385e+07 -107.776713  39.008254  1.573042e+07   2.0   \n",
      "93           NaN  3.242385e+07 -107.776738  39.008060  1.573044e+07   2.0   \n",
      "94           NaN  3.242385e+07 -107.776760  39.007885  1.573046e+07   2.0   \n",
      "95           NaN  3.242385e+07 -107.776781  39.007719  1.573048e+07   2.0   \n",
      "96           NaN  3.242385e+07 -107.776804  39.007543  1.573050e+07   2.0   \n",
      "97           NaN  3.242385e+07 -107.776852  39.007169  1.573054e+07   2.0   \n",
      "98           NaN  3.242385e+07 -107.776875  39.006990  1.573056e+07   2.0   \n",
      "99           NaN  3.242385e+07 -107.776899  39.006798  1.573058e+07   2.0   \n",
      "100          NaN  3.242385e+07 -107.776922  39.006613  1.573060e+07   2.0   \n",
      "101          NaN  3.242385e+07 -107.776944  39.006438  1.573062e+07   2.0   \n",
      "102          NaN  3.242385e+07 -107.776965  39.006259  1.573064e+07   2.0   \n",
      "103          NaN  3.242385e+07 -107.776992  39.006081  1.573066e+07   2.0   \n",
      "\n",
      "     beam      p_b                                      geometry  \n",
      "0     0.0  1.0_0.0  POINT (-107.7214097206297 39.14847517176459)  \n",
      "1     0.0  1.0_0.0  POINT (-107.7215824218184 39.14703688341704)  \n",
      "2     0.0  1.0_0.0  POINT (-107.7216731091972 39.14631809141284)  \n",
      "3     0.0  1.0_0.0   POINT (-107.721696609942 39.14613843340265)  \n",
      "4     0.0  1.0_0.0   POINT (-107.721743957224 39.14577919623853)  \n",
      "5     0.0  1.0_0.0  POINT (-107.7217674515204 39.14559953986897)  \n",
      "6     0.0  1.0_0.0  POINT (-107.7217906013239 39.14541990065935)  \n",
      "7     0.0  1.0_0.0  POINT (-107.7218136345122 39.14524019872795)  \n",
      "8     0.0  1.0_0.0  POINT (-107.7218581056292 39.14488074174673)  \n",
      "9     0.0  1.0_0.0  POINT (-107.7218796704154 39.14470094266705)  \n",
      "10    0.0  1.0_0.0  POINT (-107.7219010194933 39.14452116153078)  \n",
      "11    0.0  1.0_0.0  POINT (-107.7219221602089 39.14434131520645)  \n",
      "12    0.0  1.0_0.0  POINT (-107.7219647888887 39.14398173467092)  \n",
      "13    0.0  1.0_0.0  POINT (-107.7219861645671 39.14380191385362)  \n",
      "14    0.0  1.0_0.0  POINT (-107.7220077733503 39.14362214905266)  \n",
      "15    0.0  1.0_0.0    POINT (-107.72202947102 39.14344236379912)  \n",
      "16    0.0  1.0_0.0  POINT (-107.7220511935694 39.14326260219978)  \n",
      "17    0.0  1.0_0.0  POINT (-107.7220730223248 39.14308283327972)  \n",
      "18    0.0  1.0_0.0  POINT (-107.7220949129864 39.14290305515586)  \n",
      "19    0.0  1.0_0.0  POINT (-107.7222718714437 39.14146511625916)  \n",
      "20    0.0  1.0_0.0  POINT (-107.7231031555501 39.13463415087605)  \n",
      "21    0.0  1.0_0.0   POINT (-107.7242033659685 39.1256465054245)  \n",
      "22    0.0  1.0_0.0  POINT (-107.7251623799572 39.11773668627953)  \n",
      "23    0.0  1.0_0.0   POINT (-107.725185801294 39.11755704309204)  \n",
      "24    0.0  1.0_0.0  POINT (-107.7252093917996 39.11737739048119)  \n",
      "25    0.0  1.0_0.0   POINT (-107.7253030265297 39.1166587996099)  \n",
      "26    0.0  1.0_0.0  POINT (-107.7253711116686 39.11611969858851)  \n",
      "27    0.0  1.0_0.0   POINT (-107.725393544296 39.11593999849998)  \n",
      "28    0.0  1.0_0.0  POINT (-107.7254160491439 39.11576026094252)  \n",
      "29    0.0  1.0_0.0   POINT (-107.725438504386 39.11558056289869)  \n",
      "..    ...      ...                                           ...  \n",
      "74    1.0  2.0_1.0  POINT (-107.7753163341943 39.01922340859708)  \n",
      "75    1.0  2.0_1.0  POINT (-107.7753371790134 39.01906119465686)  \n",
      "76    1.0  2.0_1.0  POINT (-107.7753767339922 39.01884323857935)  \n",
      "77    1.0  2.0_1.0  POINT (-107.7753977237182 39.01868079702511)  \n",
      "78    1.0  2.0_1.0  POINT (-107.7754165974616 39.01851962624438)  \n",
      "79    1.0  2.0_1.0  POINT (-107.7754597881417 39.01812706969268)  \n",
      "80    1.0  2.0_1.0   POINT (-107.7754913985223 39.0179391170079)  \n",
      "81    1.0  2.0_1.0  POINT (-107.7755198526337 39.01775367492439)  \n",
      "82    1.0  2.0_1.0   POINT (-107.775535078936 39.01755659989641)  \n",
      "83    1.0  2.0_1.0  POINT (-107.7755493073052 39.01736598348242)  \n",
      "84    1.0  2.0_1.0   POINT (-107.7755666495385 39.0172216357271)  \n",
      "85    1.0  2.0_1.0  POINT (-107.7756242088638 39.01686177913604)  \n",
      "86    1.0  2.0_1.0   POINT (-107.775646963387 39.01667996811895)  \n",
      "87    1.0  2.0_1.0  POINT (-107.7758157936385 39.01541832626726)  \n",
      "88    1.0  2.0_1.0  POINT (-107.7763457018916 39.01130060693679)  \n",
      "89    1.0  2.0_1.0  POINT (-107.7766451808625 39.00879388158918)  \n",
      "90    1.0  2.0_1.0   POINT (-107.7766678885446 39.0086127299207)  \n",
      "91    1.0  2.0_1.0  POINT (-107.7766898470786 39.00843798289419)  \n",
      "92    1.0  2.0_1.0   POINT (-107.776712986584 39.00825355789594)  \n",
      "93    1.0  2.0_1.0  POINT (-107.7767376805518 39.00805972928484)  \n",
      "94    1.0  2.0_1.0  POINT (-107.7767600499371 39.00788478451381)  \n",
      "95    1.0  2.0_1.0    POINT (-107.7767812441014 39.007718710666)  \n",
      "96    1.0  2.0_1.0  POINT (-107.7768038438903 39.00754284184441)  \n",
      "97    1.0  2.0_1.0  POINT (-107.7768519551113 39.00716877418901)  \n",
      "98    1.0  2.0_1.0  POINT (-107.7768748213833 39.00698983119865)  \n",
      "99    1.0  2.0_1.0   POINT (-107.776899007674 39.00679812431886)  \n",
      "100   1.0  2.0_1.0  POINT (-107.7769220943468 39.00661292560549)  \n",
      "101   1.0  2.0_1.0  POINT (-107.7769435872633 39.00643767764421)  \n",
      "102   1.0  2.0_1.0  POINT (-107.7769651288637 39.00625941987278)  \n",
      "103   1.0  2.0_1.0   POINT (-107.776992351649 39.00608057697647)  \n",
      "\n",
      "[776 rows x 9 columns]\n",
      "           h_li    delta_time   longitude   latitude         x_atc  pair  \\\n",
      "0   1530.645996  3.539804e+07 -108.131529  38.886071  4.327119e+06   1.0   \n",
      "1   3307.917969  3.539804e+07 -108.136857  38.930117  4.332030e+06   1.0   \n",
      "2   2306.339111  3.539804e+07 -108.141149  38.964262  4.335839e+06   1.0   \n",
      "3   2505.000488  3.539804e+07 -108.148015  39.019802  4.342033e+06   1.0   \n",
      "4   3636.820312  3.539804e+07 -108.153820  39.067257  4.347325e+06   1.0   \n",
      "5   2968.458496  3.539804e+07 -108.155030  39.076600  4.348367e+06   1.0   \n",
      "6   1503.465698  3.539804e+07 -108.166270  39.166096  4.358350e+06   1.0   \n",
      "7           NaN  3.539804e+07 -108.167862  39.179038  4.359793e+06   1.0   \n",
      "0           NaN  3.539804e+07 -108.130488  38.886149  4.327119e+06   1.0   \n",
      "1           NaN  3.539804e+07 -108.136042  38.930178  4.332030e+06   1.0   \n",
      "2           NaN  3.539804e+07 -108.140120  38.964337  4.335839e+06   1.0   \n",
      "3           NaN  3.539804e+07 -108.146979  39.019878  4.342033e+06   1.0   \n",
      "4           NaN  3.539804e+07 -108.152814  39.067332  4.347325e+06   1.0   \n",
      "5           NaN  3.539804e+07 -108.153997  39.076677  4.348367e+06   1.0   \n",
      "6           NaN  3.539804e+07 -108.165230  39.166174  4.358350e+06   1.0   \n",
      "7   3462.943604  3.539804e+07 -108.166840  39.179114  4.359793e+06   1.0   \n",
      "0   2406.992188  3.539804e+07 -108.097758  38.912012  4.329705e+06   2.0   \n",
      "1   2003.942017  3.539804e+07 -108.098396  38.917225  4.330286e+06   2.0   \n",
      "2           NaN  3.539804e+07 -108.100669  38.934471  4.332211e+06   2.0   \n",
      "3           NaN  3.539804e+07 -108.100691  38.934649  4.332231e+06   2.0   \n",
      "4   3160.561523  3.539804e+07 -108.100782  38.936456  4.332431e+06   2.0   \n",
      "5   3269.665283  3.539804e+07 -108.101096  38.938972  4.332712e+06   2.0   \n",
      "6   3351.878174  3.539804e+07 -108.111991  39.027403  4.342574e+06   2.0   \n",
      "7   1726.308472  3.539804e+07 -108.113559  39.040164  4.343997e+06   2.0   \n",
      "8   2451.819580  3.539804e+07 -108.120405  39.095522  4.350171e+06   2.0   \n",
      "9   1229.721802  3.539805e+07 -108.138254  39.239662  4.366248e+06   2.0   \n",
      "10  1721.211792  3.539805e+07 -108.138789  39.243976  4.366729e+06   2.0   \n",
      "11  2484.710205  3.539805e+07 -108.140688  39.259252  4.368433e+06   2.0   \n",
      "12          NaN  3.539805e+07 -108.142561  39.274349  4.370117e+06   2.0   \n",
      "13  1544.813232  3.539805e+07 -108.143605  39.282796  4.371059e+06   2.0   \n",
      "..          ...           ...         ...        ...           ...   ...   \n",
      "8           NaN  3.539804e+07 -108.119372  39.095597  4.350171e+06   2.0   \n",
      "9           NaN  3.539805e+07 -108.137220  39.239741  4.366248e+06   2.0   \n",
      "10          NaN  3.539805e+07 -108.137751  39.244055  4.366729e+06   2.0   \n",
      "11          NaN  3.539805e+07 -108.139646  39.259329  4.368433e+06   2.0   \n",
      "12  3318.334717  3.539805e+07 -108.141685  39.274414  4.370117e+06   2.0   \n",
      "13          NaN  3.539805e+07 -108.142570  39.282877  4.371059e+06   2.0   \n",
      "14          NaN  3.539805e+07 -108.142753  39.284311  4.371219e+06   2.0   \n",
      "15          NaN  3.539805e+07 -108.144136  39.295452  4.372462e+06   2.0   \n",
      "0   3256.574951  3.539804e+07 -108.061520  38.916901  4.329945e+06   3.0   \n",
      "1   2664.341064  3.539804e+07 -108.065676  38.951054  4.333754e+06   3.0   \n",
      "2           NaN  3.539804e+07 -108.069381  38.981613  4.337162e+06   3.0   \n",
      "3           NaN  3.539804e+07 -108.071234  38.997255  4.338906e+06   3.0   \n",
      "4   1652.367554  3.539804e+07 -108.071334  38.997973  4.338986e+06   3.0   \n",
      "5   2156.015137  3.539804e+07 -108.072324  39.005698  4.339848e+06   3.0   \n",
      "6   2641.455078  3.539804e+07 -108.076906  39.042540  4.343957e+06   3.0   \n",
      "7   2937.962158  3.539804e+07 -108.084366  39.102927  4.350693e+06   3.0   \n",
      "8   1757.424561  3.539804e+07 -108.091256  39.159729  4.357027e+06   3.0   \n",
      "9   1502.064819  3.539804e+07 -108.093613  39.178961  4.359172e+06   3.0   \n",
      "10  2825.724121  3.539804e+07 -108.099067  39.222267  4.364003e+06   3.0   \n",
      "0           NaN  3.539804e+07 -108.060474  38.916979  4.329945e+06   3.0   \n",
      "1           NaN  3.539804e+07 -108.064802  38.951119  4.333754e+06   3.0   \n",
      "2   1871.529663  3.539804e+07 -108.068429  38.981684  4.337162e+06   3.0   \n",
      "3   3199.828125  3.539804e+07 -108.070465  38.997312  4.338906e+06   3.0   \n",
      "4           NaN  3.539804e+07 -108.070557  38.998031  4.338986e+06   3.0   \n",
      "5           NaN  3.539804e+07 -108.071313  39.005774  4.339848e+06   3.0   \n",
      "6           NaN  3.539804e+07 -108.075881  39.042614  4.343957e+06   3.0   \n",
      "7           NaN  3.539804e+07 -108.083358  39.103002  4.350693e+06   3.0   \n",
      "8           NaN  3.539804e+07 -108.090202  39.159810  4.357027e+06   3.0   \n",
      "9           NaN  3.539804e+07 -108.092580  39.179035  4.359172e+06   3.0   \n",
      "10          NaN  3.539805e+07 -108.098059  39.222342  4.364003e+06   3.0   \n",
      "\n",
      "    beam      p_b                                      geometry  \n",
      "0    0.0  1.0_0.0   POINT (-108.131528978666 38.88607145262714)  \n",
      "1    0.0  1.0_0.0  POINT (-108.1368569663332 38.93011675102218)  \n",
      "2    0.0  1.0_0.0  POINT (-108.1411485818788 38.96426220734609)  \n",
      "3    0.0  1.0_0.0    POINT (-108.14801455503 39.01980179942595)  \n",
      "4    0.0  1.0_0.0  POINT (-108.1538201960395 39.06725741637837)  \n",
      "5    0.0  1.0_0.0  POINT (-108.1550303950269 39.07659970294543)  \n",
      "6    0.0  1.0_0.0   POINT (-108.1662696672332 39.1660960048542)  \n",
      "7    0.0  1.0_0.0  POINT (-108.1678617263319 39.17903765667702)  \n",
      "0    1.0  1.0_1.0  POINT (-108.1304877491261 38.88614870628156)  \n",
      "1    1.0  1.0_1.0  POINT (-108.1360423027037 38.93017818847332)  \n",
      "2    1.0  1.0_1.0   POINT (-108.1401204657873 38.9643365997635)  \n",
      "3    1.0  1.0_1.0  POINT (-108.1469793033127 39.01987814486954)  \n",
      "4    1.0  1.0_1.0   POINT (-108.152813596518 39.06733215743863)  \n",
      "5    1.0  1.0_1.0  POINT (-108.1539966957528 39.07667730025142)  \n",
      "6    1.0  1.0_1.0  POINT (-108.1652302258912 39.16617410600796)  \n",
      "7    1.0  1.0_1.0  POINT (-108.1668402144137 39.17911438577566)  \n",
      "0    0.0  2.0_0.0  POINT (-108.0977576767971 38.91201202867541)  \n",
      "1    0.0  2.0_0.0  POINT (-108.0983956033117 38.91722478463649)  \n",
      "2    0.0  2.0_0.0  POINT (-108.1006687976175 38.93447115382081)  \n",
      "3    0.0  2.0_0.0   POINT (-108.1006910880479 38.9346493347897)  \n",
      "4    0.0  2.0_0.0  POINT (-108.1007817968741 38.93645563181515)  \n",
      "5    0.0  2.0_0.0  POINT (-108.1010963034008 38.93897162481769)  \n",
      "6    0.0  2.0_0.0  POINT (-108.1119910988165 39.02740281645256)  \n",
      "7    0.0  2.0_0.0    POINT (-108.113559405269 39.0401644429576)  \n",
      "8    0.0  2.0_0.0  POINT (-108.1204050044053 39.09552150562383)  \n",
      "9    0.0  2.0_0.0  POINT (-108.1382541762614 39.23966246093909)  \n",
      "10   0.0  2.0_0.0  POINT (-108.1387887056527 39.24397584490836)  \n",
      "11   0.0  2.0_0.0  POINT (-108.1406878663888 39.25925196921334)  \n",
      "12   0.0  2.0_0.0  POINT (-108.1425611547971 39.27434859711796)  \n",
      "13   0.0  2.0_0.0  POINT (-108.1436052756494 39.28279582417618)  \n",
      "..   ...      ...                                           ...  \n",
      "8    1.0  2.0_1.0  POINT (-108.1193715245302 39.09559671687309)  \n",
      "9    1.0  2.0_1.0  POINT (-108.1372197323593 39.23974096118872)  \n",
      "10   1.0  2.0_1.0  POINT (-108.1377506021853 39.24405491334088)  \n",
      "11   1.0  2.0_1.0  POINT (-108.1396461514013 39.25932873413799)  \n",
      "12   1.0  2.0_1.0  POINT (-108.1416850825489 39.27441404634983)  \n",
      "13   1.0  2.0_1.0  POINT (-108.1425695030095 39.28287666116536)  \n",
      "14   1.0  2.0_1.0  POINT (-108.1427529619883 39.28431061133055)  \n",
      "15   1.0  2.0_1.0  POINT (-108.1441363472029 39.29545154200355)  \n",
      "0    0.0  3.0_0.0  POINT (-108.0615204887168 38.91690094189164)  \n",
      "1    0.0  3.0_0.0  POINT (-108.0656755507414 38.95105385428592)  \n",
      "2    0.0  3.0_0.0  POINT (-108.0693805551537 38.98161256112287)  \n",
      "3    0.0  3.0_0.0  POINT (-108.0712336902241 38.99725459389798)  \n",
      "4    0.0  3.0_0.0   POINT (-108.071334497462 38.99797259846095)  \n",
      "5    0.0  3.0_0.0  POINT (-108.0723243231264 39.00569822874982)  \n",
      "6    0.0  3.0_0.0  POINT (-108.0769060455906 39.04253975240558)  \n",
      "7    0.0  3.0_0.0  POINT (-108.0843661398843 39.10292735880775)  \n",
      "8    0.0  3.0_0.0  POINT (-108.0912560479241 39.15972948808508)  \n",
      "9    0.0  3.0_0.0  POINT (-108.0936129822488 39.17896128215938)  \n",
      "10   0.0  3.0_0.0  POINT (-108.0990665012903 39.22226687905501)  \n",
      "0    1.0  3.0_1.0  POINT (-108.0604738714331 38.91697918488631)  \n",
      "1    1.0  3.0_1.0  POINT (-108.0648016677468 38.95111915986053)  \n",
      "2    1.0  3.0_1.0  POINT (-108.0684288632172 38.98168366903091)  \n",
      "3    1.0  3.0_1.0   POINT (-108.0704652168362 38.9973120236513)  \n",
      "4    1.0  3.0_1.0  POINT (-108.0705565237579 38.99803073572073)  \n",
      "5    1.0  3.0_1.0  POINT (-108.0713126515439 39.00577396076508)  \n",
      "6    1.0  3.0_1.0  POINT (-108.0758805584535 39.04261423294287)  \n",
      "7    1.0  3.0_1.0  POINT (-108.0833581854089 39.10300247412062)  \n",
      "8    1.0  3.0_1.0  POINT (-108.0902024324414 39.15981004444325)  \n",
      "9    1.0  3.0_1.0  POINT (-108.0925800802492 39.17903462241068)  \n",
      "10   1.0  3.0_1.0  POINT (-108.0980591579421 39.22234169286591)  \n",
      "\n",
      "[70 rows x 9 columns]\n",
      "             h_li    delta_time   longitude   latitude         x_atc  pair  \\\n",
      "0     2567.759033  2.707764e+07 -107.500013  39.094286  1.572077e+07   1.0   \n",
      "1     2570.402832  2.707764e+07 -107.500033  39.094106  1.572079e+07   1.0   \n",
      "2     2574.306396  2.707764e+07 -107.500054  39.093926  1.572081e+07   1.0   \n",
      "3     2578.582031  2.707764e+07 -107.500075  39.093746  1.572083e+07   1.0   \n",
      "4     2583.051025  2.707764e+07 -107.500096  39.093566  1.572085e+07   1.0   \n",
      "5     2587.424072  2.707764e+07 -107.500116  39.093387  1.572087e+07   1.0   \n",
      "6     2590.606689  2.707764e+07 -107.500137  39.093207  1.572089e+07   1.0   \n",
      "7     2592.772217  2.707764e+07 -107.500157  39.093027  1.572091e+07   1.0   \n",
      "8     2593.353271  2.707764e+07 -107.500177  39.092847  1.572093e+07   1.0   \n",
      "9     2594.444336  2.707764e+07 -107.500197  39.092667  1.572095e+07   1.0   \n",
      "10    2593.977539  2.707764e+07 -107.500217  39.092487  1.572097e+07   1.0   \n",
      "11    2591.283936  2.707764e+07 -107.500237  39.092307  1.572099e+07   1.0   \n",
      "12    2588.124756  2.707764e+07 -107.500257  39.092127  1.572101e+07   1.0   \n",
      "13    2582.729004  2.707764e+07 -107.500276  39.091947  1.572103e+07   1.0   \n",
      "14    2578.354980  2.707764e+07 -107.500295  39.091767  1.572105e+07   1.0   \n",
      "15    2576.214844  2.707764e+07 -107.500315  39.091587  1.572107e+07   1.0   \n",
      "16            NaN  2.707764e+07 -107.500334  39.091407  1.572109e+07   1.0   \n",
      "17    2563.354248  2.707764e+07 -107.500352  39.091227  1.572111e+07   1.0   \n",
      "18    2558.043701  2.707764e+07 -107.500370  39.091047  1.572113e+07   1.0   \n",
      "19    2552.714355  2.707764e+07 -107.500389  39.090867  1.572115e+07   1.0   \n",
      "20    2549.910889  2.707764e+07 -107.500408  39.090687  1.572117e+07   1.0   \n",
      "21    2547.111816  2.707764e+07 -107.500427  39.090508  1.572119e+07   1.0   \n",
      "22    2543.528564  2.707764e+07 -107.500446  39.090328  1.572121e+07   1.0   \n",
      "23            NaN  2.707764e+07 -107.500466  39.090148  1.572123e+07   1.0   \n",
      "24            NaN  2.707764e+07 -107.500485  39.089968  1.572125e+07   1.0   \n",
      "25    2530.045898  2.707764e+07 -107.500503  39.089788  1.572127e+07   1.0   \n",
      "26    2525.563721  2.707764e+07 -107.500523  39.089608  1.572129e+07   1.0   \n",
      "27    2521.392334  2.707764e+07 -107.500542  39.089428  1.572131e+07   1.0   \n",
      "28    2518.713379  2.707764e+07 -107.500562  39.089248  1.572133e+07   1.0   \n",
      "29    2517.644775  2.707764e+07 -107.500582  39.089068  1.572135e+07   1.0   \n",
      "...           ...           ...         ...        ...           ...   ...   \n",
      "2337  1754.534546  2.707764e+07 -107.601460  38.879331  1.574536e+07   3.0   \n",
      "2338  1753.562622  2.707764e+07 -107.601481  38.879149  1.574538e+07   3.0   \n",
      "2339  1751.863892  2.707764e+07 -107.601502  38.878969  1.574540e+07   3.0   \n",
      "2340  1748.878296  2.707764e+07 -107.601523  38.878790  1.574542e+07   3.0   \n",
      "2341  1743.671265  2.707764e+07 -107.601543  38.878610  1.574544e+07   3.0   \n",
      "2342  1736.912476  2.707764e+07 -107.601563  38.878430  1.574546e+07   3.0   \n",
      "2343          NaN  2.707764e+07 -107.601582  38.878250  1.574548e+07   3.0   \n",
      "2344          NaN  2.707764e+07 -107.601600  38.878070  1.574550e+07   3.0   \n",
      "2345  1718.670288  2.707764e+07 -107.601618  38.877890  1.574552e+07   3.0   \n",
      "2346  1716.140137  2.707764e+07 -107.601637  38.877710  1.574554e+07   3.0   \n",
      "2347  1714.373413  2.707764e+07 -107.601655  38.877530  1.574556e+07   3.0   \n",
      "2348  1713.103027  2.707764e+07 -107.601672  38.877358  1.574558e+07   3.0   \n",
      "2349  1712.685547  2.707764e+07 -107.601691  38.877178  1.574560e+07   3.0   \n",
      "2350  1712.354370  2.707764e+07 -107.601711  38.876990  1.574562e+07   3.0   \n",
      "2351  1712.013428  2.707764e+07 -107.601730  38.876810  1.574564e+07   3.0   \n",
      "2352  1711.694336  2.707764e+07 -107.601750  38.876630  1.574566e+07   3.0   \n",
      "2353  1711.388428  2.707764e+07 -107.601771  38.876450  1.574568e+07   3.0   \n",
      "2354  1710.961548  2.707764e+07 -107.601792  38.876270  1.574570e+07   3.0   \n",
      "2355  1710.641602  2.707764e+07 -107.601813  38.876093  1.574572e+07   3.0   \n",
      "2356  1710.292114  2.707764e+07 -107.601835  38.875915  1.574574e+07   3.0   \n",
      "2357  1709.815308  2.707764e+07 -107.601857  38.875731  1.574576e+07   3.0   \n",
      "2358  1709.346191  2.707764e+07 -107.601879  38.875551  1.574578e+07   3.0   \n",
      "2359  1708.910156  2.707764e+07 -107.601900  38.875372  1.574580e+07   3.0   \n",
      "2360  1708.481201  2.707764e+07 -107.601922  38.875192  1.574582e+07   3.0   \n",
      "2361  1708.025513  2.707764e+07 -107.601943  38.875012  1.574584e+07   3.0   \n",
      "2362  1707.557129  2.707764e+07 -107.601964  38.874832  1.574586e+07   3.0   \n",
      "2363  1707.009033  2.707764e+07 -107.601985  38.874652  1.574588e+07   3.0   \n",
      "2364  1706.477539  2.707764e+07 -107.602006  38.874473  1.574590e+07   3.0   \n",
      "2365  1706.034912  2.707764e+07 -107.602026  38.874293  1.574592e+07   3.0   \n",
      "2366  1705.453247  2.707764e+07 -107.602047  38.874113  1.574594e+07   3.0   \n",
      "\n",
      "      beam      p_b                                      geometry  \n",
      "0      0.0  1.0_0.0  POINT (-107.5000128476328 39.09428574915901)  \n",
      "1      0.0  1.0_0.0  POINT (-107.5000333261237 39.09410587222894)  \n",
      "2      0.0  1.0_0.0  POINT (-107.5000541886183 39.09392606024253)  \n",
      "3      0.0  1.0_0.0   POINT (-107.500074992725 39.09374622288744)  \n",
      "4      0.0  1.0_0.0  POINT (-107.5000957367168 39.09356636408912)  \n",
      "5      0.0  1.0_0.0  POINT (-107.5001164477939 39.09338654352671)  \n",
      "6      0.0  1.0_0.0  POINT (-107.5001368973772 39.09320668147293)  \n",
      "7      0.0  1.0_0.0  POINT (-107.5001571641417 39.09302678691104)  \n",
      "8      0.0  1.0_0.0  POINT (-107.5001771704303 39.09284690889445)  \n",
      "9      0.0  1.0_0.0  POINT (-107.5001973460814 39.09266702391228)  \n",
      "10     0.0  1.0_0.0   POINT (-107.5002174787489 39.0924871233341)  \n",
      "11     0.0  1.0_0.0  POINT (-107.5002371815502 39.09230722413935)  \n",
      "12     0.0  1.0_0.0   POINT (-107.500256730661 39.09212729084759)  \n",
      "13     0.0  1.0_0.0  POINT (-107.5002757895989 39.09194730938555)  \n",
      "14     0.0  1.0_0.0  POINT (-107.5002950599772 39.09176737708271)  \n",
      "15     0.0  1.0_0.0  POINT (-107.5003148624797 39.09158744940035)  \n",
      "16     0.0  1.0_0.0  POINT (-107.5003339044033 39.09140749895215)  \n",
      "17     0.0  1.0_0.0  POINT (-107.5003520025933 39.09122745902231)  \n",
      "18     0.0  1.0_0.0  POINT (-107.5003704720411 39.09104743133379)  \n",
      "19     0.0  1.0_0.0  POINT (-107.5003890884165 39.09086744564417)  \n",
      "20     0.0  1.0_0.0  POINT (-107.5004081806076 39.09068748309274)  \n",
      "21     0.0  1.0_0.0   POINT (-107.500427315622 39.09050750530052)  \n",
      "22     0.0  1.0_0.0  POINT (-107.5004463309431 39.09032755718577)  \n",
      "23     0.0  1.0_0.0  POINT (-107.5004659034828 39.09014762834263)  \n",
      "24     0.0  1.0_0.0  POINT (-107.5004849847935 39.08996764635839)  \n",
      "25     0.0  1.0_0.0  POINT (-107.5005033571021 39.08978764205116)  \n",
      "26     0.0  1.0_0.0   POINT (-107.5005226015838 39.0896076904305)  \n",
      "27     0.0  1.0_0.0  POINT (-107.5005420420029 39.08942773550934)  \n",
      "28     0.0  1.0_0.0  POINT (-107.5005618395939 39.08924784140493)  \n",
      "29     0.0  1.0_0.0   POINT (-107.5005820511934 39.0890679625095)  \n",
      "...    ...      ...                                           ...  \n",
      "2337   1.0  3.0_1.0  POINT (-107.6014598462422 38.87933052197229)  \n",
      "2338   1.0  3.0_1.0  POINT (-107.6014814095054 38.87914927141775)  \n",
      "2339   1.0  3.0_1.0  POINT (-107.6015024737676 38.87896943137424)  \n",
      "2340   1.0  3.0_1.0  POINT (-107.6015230915509 38.87878959657404)  \n",
      "2341   1.0  3.0_1.0  POINT (-107.6015431103672 38.87860975038735)  \n",
      "2342   1.0  3.0_1.0  POINT (-107.6015625641277 38.87842979002086)  \n",
      "2343   1.0  3.0_1.0  POINT (-107.6015816591366 38.87824983921119)  \n",
      "2344   1.0  3.0_1.0    POINT (-107.6016003458279 38.878069860053)  \n",
      "2345   1.0  3.0_1.0  POINT (-107.6016184635806 38.87788986899345)  \n",
      "2346   1.0  3.0_1.0  POINT (-107.6016366049427 38.87770981119245)  \n",
      "2347   1.0  3.0_1.0  POINT (-107.6016547756221 38.87752979325011)  \n",
      "2348   1.0  3.0_1.0  POINT (-107.6016722866827 38.87735783322321)  \n",
      "2349   1.0  3.0_1.0  POINT (-107.6016908731432 38.87717829245096)  \n",
      "2350   1.0  3.0_1.0  POINT (-107.6017107344618 38.87698983684557)  \n",
      "2351   1.0  3.0_1.0  POINT (-107.6017302437203 38.87680995191888)  \n",
      "2352   1.0  3.0_1.0  POINT (-107.6017504177302 38.87663004716694)  \n",
      "2353   1.0  3.0_1.0  POINT (-107.6017711885521 38.87645022121283)  \n",
      "2354   1.0  3.0_1.0  POINT (-107.6017923080114 38.87627042503484)  \n",
      "2355   1.0  3.0_1.0     POINT (-107.601813491219 38.876092679774)  \n",
      "2356   1.0  3.0_1.0  POINT (-107.6018349194066 38.87591456334489)  \n",
      "2357   1.0  3.0_1.0  POINT (-107.6018570804144 38.87573113004164)  \n",
      "2358   1.0  3.0_1.0  POINT (-107.6018787736757 38.87555140956103)  \n",
      "2359   1.0  3.0_1.0  POINT (-107.6019003207209 38.87537160448964)  \n",
      "2360   1.0  3.0_1.0  POINT (-107.6019216621888 38.87519182181359)  \n",
      "2361   1.0  3.0_1.0  POINT (-107.6019428744276 38.87501206752142)  \n",
      "2362   1.0  3.0_1.0    POINT (-107.6019639524741 38.874832229749)  \n",
      "2363   1.0  3.0_1.0  POINT (-107.6019848506837 38.87465241362478)  \n",
      "2364   1.0  3.0_1.0  POINT (-107.6020055984433 38.87447258703035)  \n",
      "2365   1.0  3.0_1.0   POINT (-107.6020261794075 38.8742927853322)  \n",
      "2366   1.0  3.0_1.0   POINT (-107.6020466792754 38.8741129026138)  \n",
      "\n",
      "[11885 rows x 9 columns]\n",
      "             h_li    delta_time   longitude   latitude         x_atc  pair  \\\n",
      "0     2496.142334  3.492442e+07 -107.500021  39.138547  1.571588e+07   2.0   \n",
      "1     2493.880615  3.492442e+07 -107.500043  39.138368  1.571590e+07   2.0   \n",
      "2     2491.358154  3.492442e+07 -107.500066  39.138188  1.571592e+07   2.0   \n",
      "3     2491.483154  3.492442e+07 -107.500088  39.138008  1.571594e+07   2.0   \n",
      "4     2492.840820  3.492442e+07 -107.500111  39.137829  1.571596e+07   2.0   \n",
      "5     2494.416992  3.492442e+07 -107.500134  39.137649  1.571598e+07   2.0   \n",
      "6     2496.359375  3.492442e+07 -107.500156  39.137469  1.571600e+07   2.0   \n",
      "7     2497.512451  3.492442e+07 -107.500178  39.137290  1.571602e+07   2.0   \n",
      "8     2499.706299  3.492442e+07 -107.500199  39.137110  1.571604e+07   2.0   \n",
      "9     2503.357910  3.492442e+07 -107.500221  39.136930  1.571606e+07   2.0   \n",
      "10    2505.207764  3.492442e+07 -107.500242  39.136750  1.571608e+07   2.0   \n",
      "11    2505.353271  3.492442e+07 -107.500263  39.136570  1.571610e+07   2.0   \n",
      "12    2505.264404  3.492442e+07 -107.500284  39.136390  1.571612e+07   2.0   \n",
      "13    2506.360840  3.492442e+07 -107.500305  39.136211  1.571614e+07   2.0   \n",
      "14    2508.032471  3.492442e+07 -107.500327  39.136031  1.571616e+07   2.0   \n",
      "15    2507.101318  3.492442e+07 -107.500349  39.135851  1.571618e+07   2.0   \n",
      "16    2505.547363  3.492442e+07 -107.500371  39.135671  1.571620e+07   2.0   \n",
      "17    2505.543701  3.492442e+07 -107.500394  39.135492  1.571622e+07   2.0   \n",
      "18    2505.165527  3.492442e+07 -107.500416  39.135312  1.571624e+07   2.0   \n",
      "19    2503.662842  3.492443e+07 -107.500439  39.135132  1.571626e+07   2.0   \n",
      "20    2503.017334  3.492443e+07 -107.500461  39.134953  1.571628e+07   2.0   \n",
      "21    2502.549072  3.492443e+07 -107.500484  39.134773  1.571630e+07   2.0   \n",
      "22    2503.769043  3.492443e+07 -107.500507  39.134593  1.571632e+07   2.0   \n",
      "23    2505.564941  3.492443e+07 -107.500529  39.134414  1.571634e+07   2.0   \n",
      "24    2502.926025  3.492443e+07 -107.500551  39.134234  1.571636e+07   2.0   \n",
      "25    2499.076172  3.492443e+07 -107.500573  39.134054  1.571638e+07   2.0   \n",
      "26    2496.207031  3.492443e+07 -107.500595  39.133874  1.571640e+07   2.0   \n",
      "27    2493.133545  3.492443e+07 -107.500617  39.133695  1.571642e+07   2.0   \n",
      "28    2490.271240  3.492443e+07 -107.500639  39.133515  1.571644e+07   2.0   \n",
      "29    2486.506836  3.492443e+07 -107.500662  39.133335  1.571646e+07   2.0   \n",
      "...           ...           ...         ...        ...           ...   ...   \n",
      "1980  1802.314087  3.492443e+07 -107.569817  38.879316  1.574510e+07   3.0   \n",
      "1981  1804.644409  3.492443e+07 -107.569839  38.879136  1.574512e+07   3.0   \n",
      "1982          NaN  3.492443e+07 -107.569859  38.878968  1.574514e+07   3.0   \n",
      "1983          NaN  3.492443e+07 -107.569882  38.878777  1.574516e+07   3.0   \n",
      "1984  1816.767456  3.492443e+07 -107.569903  38.878597  1.574518e+07   3.0   \n",
      "1985  1817.171143  3.492443e+07 -107.569925  38.878417  1.574520e+07   3.0   \n",
      "1986  1819.028076  3.492443e+07 -107.569946  38.878237  1.574522e+07   3.0   \n",
      "1987          NaN  3.492443e+07 -107.569966  38.878062  1.574524e+07   3.0   \n",
      "1988          NaN  3.492443e+07 -107.569988  38.877877  1.574526e+07   3.0   \n",
      "1989          NaN  3.492443e+07 -107.570009  38.877698  1.574528e+07   3.0   \n",
      "1990          NaN  3.492443e+07 -107.570032  38.877513  1.574530e+07   3.0   \n",
      "1991          NaN  3.492443e+07 -107.570049  38.877375  1.574532e+07   3.0   \n",
      "1992          NaN  3.492443e+07 -107.570070  38.877199  1.574534e+07   3.0   \n",
      "1993          NaN  3.492443e+07 -107.570095  38.876991  1.574536e+07   3.0   \n",
      "1994          NaN  3.492443e+07 -107.570116  38.876828  1.574538e+07   3.0   \n",
      "1995          NaN  3.492443e+07 -107.570161  38.876458  1.574542e+07   3.0   \n",
      "1996          NaN  3.492443e+07 -107.570185  38.876261  1.574544e+07   3.0   \n",
      "1997  1784.493408  3.492443e+07 -107.570207  38.876080  1.574546e+07   3.0   \n",
      "1998  1787.386597  3.492443e+07 -107.570229  38.875901  1.574548e+07   3.0   \n",
      "1999  1785.198364  3.492443e+07 -107.570251  38.875721  1.574550e+07   3.0   \n",
      "2000  1783.644165  3.492443e+07 -107.570272  38.875541  1.574552e+07   3.0   \n",
      "2001          NaN  3.492443e+07 -107.570293  38.875372  1.574554e+07   3.0   \n",
      "2002          NaN  3.492443e+07 -107.570318  38.875169  1.574556e+07   3.0   \n",
      "2003          NaN  3.492443e+07 -107.570340  38.874984  1.574558e+07   3.0   \n",
      "2004          NaN  3.492443e+07 -107.570361  38.874825  1.574560e+07   3.0   \n",
      "2005          NaN  3.492443e+07 -107.570385  38.874634  1.574562e+07   3.0   \n",
      "2006          NaN  3.492443e+07 -107.570406  38.874462  1.574564e+07   3.0   \n",
      "2007          NaN  3.492443e+07 -107.570432  38.874255  1.574566e+07   3.0   \n",
      "2008          NaN  3.492443e+07 -107.570498  38.874084  1.574568e+07   3.0   \n",
      "2009          NaN  3.492443e+07 -107.570515  38.873943  1.574570e+07   3.0   \n",
      "\n",
      "      beam      p_b                                      geometry  \n",
      "0      0.0  2.0_0.0  POINT (-107.5000206195881 39.13854745476096)  \n",
      "1      0.0  2.0_0.0  POINT (-107.5000430251088 39.13836774232548)  \n",
      "2      0.0  2.0_0.0  POINT (-107.5000655867243 39.13818802225993)  \n",
      "3      0.0  2.0_0.0  POINT (-107.5000883289016 39.13800835257923)  \n",
      "4      0.0  2.0_0.0  POINT (-107.5001111087726 39.13782867063036)  \n",
      "5      0.0  2.0_0.0  POINT (-107.5001337060952 39.13764895354209)  \n",
      "6      0.0  2.0_0.0   POINT (-107.5001560873866 39.1374692566872)  \n",
      "7      0.0  2.0_0.0  POINT (-107.5001779940835 39.13728950536988)  \n",
      "8      0.0  2.0_0.0  POINT (-107.5001994825267 39.13710970515653)  \n",
      "9      0.0  2.0_0.0  POINT (-107.5002208455695 39.13692993210699)  \n",
      "10     0.0  2.0_0.0  POINT (-107.5002418902294 39.13675011546055)  \n",
      "11     0.0  2.0_0.0  POINT (-107.5002627889397 39.13657027008853)  \n",
      "12     0.0  2.0_0.0  POINT (-107.5002837636643 39.13639046995258)  \n",
      "13     0.0  2.0_0.0  POINT (-107.5003050617625 39.13621067514375)  \n",
      "14     0.0  2.0_0.0  POINT (-107.5003267287488 39.13603088935561)  \n",
      "15     0.0  2.0_0.0  POINT (-107.5003487158247 39.13585116179934)  \n",
      "16     0.0  2.0_0.0  POINT (-107.5003709189188 39.13567143183572)  \n",
      "17     0.0  2.0_0.0  POINT (-107.5003935069862 39.13549171334542)  \n",
      "18     0.0  2.0_0.0   POINT (-107.5004161590407 39.1353120357381)  \n",
      "19     0.0  2.0_0.0  POINT (-107.5004387427099 39.13513233743073)  \n",
      "20     0.0  2.0_0.0  POINT (-107.5004614228633 39.13495262701983)  \n",
      "21     0.0  2.0_0.0  POINT (-107.5004840199576 39.13477294690483)  \n",
      "22     0.0  2.0_0.0    POINT (-107.500506528358 39.1345932444183)  \n",
      "23     0.0  2.0_0.0  POINT (-107.5005288812709 39.13441350836388)  \n",
      "24     0.0  2.0_0.0  POINT (-107.5005508162772 39.13423377457927)  \n",
      "25     0.0  2.0_0.0  POINT (-107.5005726318827 39.13405401805879)  \n",
      "26     0.0  2.0_0.0  POINT (-107.5005946432021 39.13387426099552)  \n",
      "27     0.0  2.0_0.0  POINT (-107.5006167853153 39.13369454562342)  \n",
      "28     0.0  2.0_0.0  POINT (-107.5006391038641 39.13351482456186)  \n",
      "29     0.0  2.0_0.0  POINT (-107.5006616734468 39.13333510741826)  \n",
      "...    ...      ...                                           ...  \n",
      "1980   1.0  3.0_1.0    POINT (-107.56981671664 38.87931610040629)  \n",
      "1981   1.0  3.0_1.0  POINT (-107.5698387488903 38.87913632658628)  \n",
      "1982   1.0  3.0_1.0  POINT (-107.5698591878327 38.87896823574381)  \n",
      "1983   1.0  3.0_1.0  POINT (-107.5698822378999 38.87877684097164)  \n",
      "1984   1.0  3.0_1.0   POINT (-107.5699034916879 38.8785970279867)  \n",
      "1985   1.0  3.0_1.0   POINT (-107.5699246130499 38.8784172227174)  \n",
      "1986   1.0  3.0_1.0  POINT (-107.5699457794619 38.87823744270516)  \n",
      "1987   1.0  3.0_1.0  POINT (-107.5699662302393 38.87806236147564)  \n",
      "1988   1.0  3.0_1.0  POINT (-107.5699878535007 38.87787708550282)  \n",
      "1989   1.0  3.0_1.0  POINT (-107.5700091260149 38.87769815306345)  \n",
      "1990   1.0  3.0_1.0  POINT (-107.5700316930189 38.87751268984189)  \n",
      "1991   1.0  3.0_1.0   POINT (-107.5700485277379 38.8773750484438)  \n",
      "1992   1.0  3.0_1.0  POINT (-107.5700699381188 38.87719898616942)  \n",
      "1993   1.0  3.0_1.0  POINT (-107.5700954441269 38.87699102957833)  \n",
      "1994   1.0  3.0_1.0     POINT (-107.5701156265162 38.87682804892)  \n",
      "1995   1.0  3.0_1.0  POINT (-107.5701612371029 38.87645793482183)  \n",
      "1996   1.0  3.0_1.0  POINT (-107.5701852845669 38.87626056924378)  \n",
      "1997   1.0  3.0_1.0  POINT (-107.5702071429273 38.87608032140995)  \n",
      "1998   1.0  3.0_1.0  POINT (-107.5702288886727 38.87590056685367)  \n",
      "1999   1.0  3.0_1.0   POINT (-107.570250507107 38.87572082652843)  \n",
      "2000   1.0  3.0_1.0  POINT (-107.5702722449791 38.87554104113013)  \n",
      "2001   1.0  3.0_1.0   POINT (-107.570292706467 38.87537190093901)  \n",
      "2002   1.0  3.0_1.0  POINT (-107.5703176085834 38.87516869345433)  \n",
      "2003   1.0  3.0_1.0   POINT (-107.570340375211 38.87498446182148)  \n",
      "2004   1.0  3.0_1.0  POINT (-107.5703605346463 38.87482546360049)  \n",
      "2005   1.0  3.0_1.0   POINT (-107.5703846888088 38.8746344808425)  \n",
      "2006   1.0  3.0_1.0  POINT (-107.5704063222194 38.87446229663219)  \n",
      "2007   1.0  3.0_1.0  POINT (-107.5704322972948 38.87425474529761)  \n",
      "2008   1.0  3.0_1.0  POINT (-107.5704976820355 38.87408403674688)  \n",
      "2009   1.0  3.0_1.0  POINT (-107.5705151922155 38.87394331618098)  \n",
      "\n",
      "[6865 rows x 9 columns]\n",
      "            h_li    delta_time   longitude   latitude         x_atc  pair  \\\n",
      "0    3971.830322  3.255237e+07 -107.615019  38.901531  4.328848e+06   1.0   \n",
      "1    4045.755615  3.255237e+07 -107.615094  38.902255  4.328928e+06   1.0   \n",
      "2            NaN  3.255237e+07 -107.623357  38.961866  4.335583e+06   1.0   \n",
      "3            NaN  3.255237e+07 -107.625686  38.984365  4.338089e+06   1.0   \n",
      "4            NaN  3.255237e+07 -107.625711  38.984541  4.338109e+06   1.0   \n",
      "5    1878.385132  3.255237e+07 -107.627314  38.996941  4.339492e+06   1.0   \n",
      "6    1373.946655  3.255237e+07 -107.627756  39.000354  4.339873e+06   1.0   \n",
      "7    3189.342285  3.255237e+07 -107.633628  39.050889  4.345506e+06   1.0   \n",
      "8            NaN  3.255237e+07 -107.635994  39.068308  4.347450e+06   1.0   \n",
      "9    1803.193848  3.255237e+07 -107.638205  39.083199  4.349114e+06   1.0   \n",
      "10   1860.257812  3.255237e+07 -107.641230  39.107643  4.351840e+06   1.0   \n",
      "11   1861.152100  3.255237e+07 -107.641250  39.107823  4.351860e+06   1.0   \n",
      "12   1493.443604  3.255237e+07 -107.642222  39.115732  4.352742e+06   1.0   \n",
      "13           NaN  3.255237e+07 -107.642793  39.123490  4.353604e+06   1.0   \n",
      "14   3059.982910  3.255237e+07 -107.643392  39.127617  4.354065e+06   1.0   \n",
      "15   3044.706299  3.255237e+07 -107.643574  39.129236  4.354246e+06   1.0   \n",
      "16   3045.288818  3.255237e+07 -107.643595  39.129416  4.354266e+06   1.0   \n",
      "17   3046.285400  3.255237e+07 -107.643829  39.131394  4.354486e+06   1.0   \n",
      "18   3045.273193  3.255237e+07 -107.643851  39.131574  4.354506e+06   1.0   \n",
      "19   3045.084229  3.255237e+07 -107.643872  39.131754  4.354526e+06   1.0   \n",
      "20   3044.632324  3.255237e+07 -107.643893  39.131933  4.354546e+06   1.0   \n",
      "21   3046.570557  3.255237e+07 -107.643914  39.132113  4.354567e+06   1.0   \n",
      "22   3046.700928  3.255237e+07 -107.643935  39.132293  4.354587e+06   1.0   \n",
      "23   1585.126953  3.255237e+07 -107.644550  39.135875  4.354987e+06   1.0   \n",
      "24   2262.575195  3.255237e+07 -107.645410  39.143792  4.355869e+06   1.0   \n",
      "25   2142.352295  3.255237e+07 -107.645490  39.144331  4.355930e+06   1.0   \n",
      "26   2912.886475  3.255237e+07 -107.645610  39.146136  4.356130e+06   1.0   \n",
      "27   2914.036621  3.255237e+07 -107.645631  39.146316  4.356150e+06   1.0   \n",
      "28   2914.901367  3.255237e+07 -107.645652  39.146495  4.356170e+06   1.0   \n",
      "29   2915.721924  3.255237e+07 -107.645674  39.146675  4.356190e+06   1.0   \n",
      "..           ...           ...         ...        ...           ...   ...   \n",
      "646  2445.952148  3.255237e+07 -107.588320  39.288813  4.371425e+06   3.0   \n",
      "647  2454.789307  3.255237e+07 -107.588345  39.288992  4.371445e+06   3.0   \n",
      "648  2465.439697  3.255237e+07 -107.588370  39.289172  4.371465e+06   3.0   \n",
      "649  2472.748535  3.255237e+07 -107.588394  39.289352  4.371485e+06   3.0   \n",
      "650  2468.295166  3.255237e+07 -107.588418  39.289531  4.371505e+06   3.0   \n",
      "651  2478.276611  3.255237e+07 -107.588442  39.289711  4.371525e+06   3.0   \n",
      "652  2482.563477  3.255237e+07 -107.588466  39.289890  4.371545e+06   3.0   \n",
      "653          NaN  3.255237e+07 -107.588490  39.290070  4.371565e+06   3.0   \n",
      "654          NaN  3.255237e+07 -107.588518  39.290249  4.371585e+06   3.0   \n",
      "655  2498.356689  3.255237e+07 -107.588538  39.290429  4.371605e+06   3.0   \n",
      "656          NaN  3.255237e+07 -107.588559  39.290609  4.371625e+06   3.0   \n",
      "657          NaN  3.255237e+07 -107.588585  39.290788  4.371645e+06   3.0   \n",
      "658          NaN  3.255237e+07 -107.588611  39.290968  4.371665e+06   3.0   \n",
      "659  2514.850342  3.255237e+07 -107.588633  39.291148  4.371685e+06   3.0   \n",
      "660          NaN  3.255237e+07 -107.588657  39.291327  4.371705e+06   3.0   \n",
      "661          NaN  3.255237e+07 -107.588681  39.291507  4.371725e+06   3.0   \n",
      "662  2513.870605  3.255237e+07 -107.588705  39.291686  4.371746e+06   3.0   \n",
      "663          NaN  3.255237e+07 -107.588730  39.291866  4.371766e+06   3.0   \n",
      "664          NaN  3.255237e+07 -107.588530  39.292608  4.371846e+06   3.0   \n",
      "665          NaN  3.255237e+07 -107.589023  39.294020  4.372006e+06   3.0   \n",
      "666          NaN  3.255237e+07 -107.588925  39.295657  4.372187e+06   3.0   \n",
      "667          NaN  3.255237e+07 -107.589307  39.296087  4.372227e+06   3.0   \n",
      "668          NaN  3.255237e+07 -107.589493  39.298662  4.372527e+06   3.0   \n",
      "669          NaN  3.255237e+07 -107.589330  39.298895  4.372547e+06   3.0   \n",
      "670          NaN  3.255237e+07 -107.589354  39.299074  4.372567e+06   3.0   \n",
      "671          NaN  3.255237e+07 -107.589379  39.299255  4.372587e+06   3.0   \n",
      "672          NaN  3.255237e+07 -107.589402  39.299433  4.372607e+06   3.0   \n",
      "673          NaN  3.255237e+07 -107.589425  39.299611  4.372628e+06   3.0   \n",
      "674          NaN  3.255237e+07 -107.589620  39.299779  4.372648e+06   3.0   \n",
      "675          NaN  3.255237e+07 -107.589815  39.299947  4.372668e+06   3.0   \n",
      "\n",
      "     beam      p_b                                      geometry  \n",
      "0     0.0  1.0_0.0  POINT (-107.6150193949301 38.90153086025174)  \n",
      "1     0.0  1.0_0.0  POINT (-107.6150940220106 38.90225532675423)  \n",
      "2     0.0  1.0_0.0  POINT (-107.6233566245995 38.96186605104344)  \n",
      "3     0.0  1.0_0.0  POINT (-107.6256856823435 38.98436530831798)  \n",
      "4     0.0  1.0_0.0   POINT (-107.625711407221 38.98454099101978)  \n",
      "5     0.0  1.0_0.0  POINT (-107.6273142913977 38.99694069150212)  \n",
      "6     0.0  1.0_0.0   POINT (-107.627756090538 39.00035431219615)  \n",
      "7     0.0  1.0_0.0  POINT (-107.6336278583014 39.05088928012015)  \n",
      "8     0.0  1.0_0.0  POINT (-107.6359940680245 39.06830826147105)  \n",
      "9     0.0  1.0_0.0  POINT (-107.6382051133424 39.08319907526162)  \n",
      "10    0.0  1.0_0.0  POINT (-107.6412297383055 39.10764342443647)  \n",
      "11    0.0  1.0_0.0   POINT (-107.641249955411 39.10782331756896)  \n",
      "12    0.0  1.0_0.0  POINT (-107.6422222292204 39.11573224035484)  \n",
      "13    0.0  1.0_0.0  POINT (-107.6427934030733 39.12348989498329)  \n",
      "14    0.0  1.0_0.0  POINT (-107.6433916699242 39.12761732729533)  \n",
      "15    0.0  1.0_0.0  POINT (-107.6435740833532 39.12923628947645)  \n",
      "16    0.0  1.0_0.0  POINT (-107.6435951201173 39.12941611590136)  \n",
      "17    0.0  1.0_0.0  POINT (-107.6438294292817 39.13139399542071)  \n",
      "18    0.0  1.0_0.0   POINT (-107.6438505678827 39.1315738254163)  \n",
      "19    0.0  1.0_0.0  POINT (-107.6438718171511 39.13175353767209)  \n",
      "20    0.0  1.0_0.0  POINT (-107.6438930833729 39.13193344154664)  \n",
      "21    0.0  1.0_0.0  POINT (-107.6439140338443 39.13211330456728)  \n",
      "22    0.0  1.0_0.0  POINT (-107.6439350309156 39.13229312249853)  \n",
      "23    0.0  1.0_0.0  POINT (-107.6445498855123 39.13587507833908)  \n",
      "24    0.0  1.0_0.0  POINT (-107.6454097648171 39.14379241828867)  \n",
      "25    0.0  1.0_0.0    POINT (-107.645489721508 39.1443306375684)  \n",
      "26    0.0  1.0_0.0  POINT (-107.6456097051605 39.14613571900723)  \n",
      "27    0.0  1.0_0.0  POINT (-107.6456309392601 39.14631550758872)  \n",
      "28    0.0  1.0_0.0  POINT (-107.6456523487051 39.14649530304307)  \n",
      "29    0.0  1.0_0.0  POINT (-107.6456739746526 39.14667509907203)  \n",
      "..    ...      ...                                           ...  \n",
      "646   1.0  3.0_1.0  POINT (-107.5883198694836 39.28881297205116)  \n",
      "647   1.0  3.0_1.0  POINT (-107.5883448295113 39.28899249586989)  \n",
      "648   1.0  3.0_1.0  POINT (-107.5883696614724 39.28917202242956)  \n",
      "649   1.0  3.0_1.0  POINT (-107.5883941989879 39.28935157119133)  \n",
      "650   1.0  3.0_1.0  POINT (-107.5884181150471 39.28953117912607)  \n",
      "651   1.0  3.0_1.0  POINT (-107.5884423331845 39.28971074060807)  \n",
      "652   1.0  3.0_1.0  POINT (-107.5884661932537 39.28989033117221)  \n",
      "653   1.0  3.0_1.0  POINT (-107.5884900341029 39.29006986326348)  \n",
      "654   1.0  3.0_1.0  POINT (-107.5885180307009 39.29024921536125)  \n",
      "655   1.0  3.0_1.0  POINT (-107.5885375130875 39.29042912778934)  \n",
      "656   1.0  3.0_1.0  POINT (-107.5885594842679 39.29060888777266)  \n",
      "657   1.0  3.0_1.0   POINT (-107.588584916589 39.29078838789192)  \n",
      "658   1.0  3.0_1.0  POINT (-107.5886107503287 39.29096782998027)  \n",
      "659   1.0  3.0_1.0   POINT (-107.5886326052564 39.2911475833696)  \n",
      "660   1.0  3.0_1.0    POINT (-107.5886566217515 39.291327161877)  \n",
      "661   1.0  3.0_1.0   POINT (-107.5886809265467 39.2915067231394)  \n",
      "662   1.0  3.0_1.0  POINT (-107.5887053535137 39.29168629432262)  \n",
      "663   1.0  3.0_1.0  POINT (-107.5887300908857 39.29186581865365)  \n",
      "664   1.0  3.0_1.0  POINT (-107.5885304054041 39.29260796967131)  \n",
      "665   1.0  3.0_1.0  POINT (-107.5890233268968 39.29402042632797)  \n",
      "666   1.0  3.0_1.0    POINT (-107.58892538624 39.29565654511028)  \n",
      "667   1.0  3.0_1.0  POINT (-107.5893065609232 39.29608654100211)  \n",
      "668   1.0  3.0_1.0  POINT (-107.5894932626934 39.29866173728576)  \n",
      "669   1.0  3.0_1.0  POINT (-107.5893303488763 39.29889537006583)  \n",
      "670   1.0  3.0_1.0  POINT (-107.5893544428365 39.29907379916924)  \n",
      "671   1.0  3.0_1.0   POINT (-107.589378700481 39.29925534617963)  \n",
      "672   1.0  3.0_1.0  POINT (-107.5894023143225 39.29943349981534)  \n",
      "673   1.0  3.0_1.0  POINT (-107.5894254671772 39.29961086766748)  \n",
      "674   1.0  3.0_1.0  POINT (-107.5896197602169 39.29977939132532)  \n",
      "675   1.0  3.0_1.0   POINT (-107.589814785524 39.29994688241323)  \n",
      "\n",
      "[3978 rows x 9 columns]\n",
      "             h_li    delta_time   longitude   latitude         x_atc  pair  \\\n",
      "0     2193.492676  2.992328e+07 -107.993558  39.299959  1.569783e+07   1.0   \n",
      "1             NaN  2.992328e+07 -107.993601  39.299599  1.569787e+07   1.0   \n",
      "2     2169.031006  2.992328e+07 -107.993623  39.299420  1.569789e+07   1.0   \n",
      "3     2169.937256  2.992328e+07 -107.993645  39.299240  1.569791e+07   1.0   \n",
      "4     2172.963867  2.992328e+07 -107.993667  39.299060  1.569793e+07   1.0   \n",
      "5     2184.799316  2.992328e+07 -107.993690  39.298881  1.569795e+07   1.0   \n",
      "6     2195.694824  2.992328e+07 -107.993713  39.298701  1.569797e+07   1.0   \n",
      "7     2202.222656  2.992328e+07 -107.993736  39.298521  1.569799e+07   1.0   \n",
      "8     2207.785156  2.992328e+07 -107.993758  39.298341  1.569801e+07   1.0   \n",
      "9     2209.665039  2.992328e+07 -107.993781  39.298162  1.569803e+07   1.0   \n",
      "10    2213.667969  2.992328e+07 -107.993803  39.297982  1.569805e+07   1.0   \n",
      "11    2219.333740  2.992328e+07 -107.993826  39.297802  1.569807e+07   1.0   \n",
      "12    2225.418457  2.992328e+07 -107.993848  39.297623  1.569809e+07   1.0   \n",
      "13    2230.454102  2.992328e+07 -107.993870  39.297443  1.569811e+07   1.0   \n",
      "14    2233.067871  2.992328e+07 -107.993893  39.297263  1.569813e+07   1.0   \n",
      "15    2236.930908  2.992328e+07 -107.993915  39.297083  1.569815e+07   1.0   \n",
      "16            NaN  2.992328e+07 -107.993937  39.296904  1.569817e+07   1.0   \n",
      "17    2229.162109  2.992328e+07 -107.993958  39.296724  1.569819e+07   1.0   \n",
      "18    2215.701904  2.992328e+07 -107.993979  39.296544  1.569821e+07   1.0   \n",
      "19    2202.824219  2.992328e+07 -107.994000  39.296364  1.569823e+07   1.0   \n",
      "20    2191.830811  2.992328e+07 -107.994021  39.296184  1.569825e+07   1.0   \n",
      "21    2181.459473  2.992328e+07 -107.994042  39.296005  1.569827e+07   1.0   \n",
      "22    2171.343018  2.992328e+07 -107.994063  39.295825  1.569829e+07   1.0   \n",
      "23    2162.697510  2.992328e+07 -107.994084  39.295645  1.569831e+07   1.0   \n",
      "24    2154.701660  2.992328e+07 -107.994105  39.295465  1.569833e+07   1.0   \n",
      "25            NaN  2.992328e+07 -107.994127  39.295285  1.569835e+07   1.0   \n",
      "26    2171.870361  2.992328e+07 -107.994173  39.294926  1.569839e+07   1.0   \n",
      "27    2182.013184  2.992328e+07 -107.994195  39.294746  1.569841e+07   1.0   \n",
      "28    2184.606689  2.992328e+07 -107.994217  39.294567  1.569843e+07   1.0   \n",
      "29    2187.043457  2.992328e+07 -107.994240  39.294387  1.569845e+07   1.0   \n",
      "...           ...           ...         ...        ...           ...   ...   \n",
      "1552  2495.344238  2.992329e+07 -108.120436  38.879752  1.574531e+07   3.0   \n",
      "1553  2493.443115  2.992329e+07 -108.120459  38.879573  1.574533e+07   3.0   \n",
      "1554  2491.187256  2.992329e+07 -108.120481  38.879393  1.574535e+07   3.0   \n",
      "1555  2488.416260  2.992329e+07 -108.120503  38.879213  1.574537e+07   3.0   \n",
      "1556  2485.857422  2.992329e+07 -108.120525  38.879033  1.574539e+07   3.0   \n",
      "1557  2484.052246  2.992329e+07 -108.120547  38.878854  1.574541e+07   3.0   \n",
      "1558  2483.167725  2.992329e+07 -108.120568  38.878674  1.574543e+07   3.0   \n",
      "1559  2483.434570  2.992329e+07 -108.120588  38.878494  1.574545e+07   3.0   \n",
      "1560  2484.793945  2.992329e+07 -108.120609  38.878314  1.574547e+07   3.0   \n",
      "1561  2485.659912  2.992329e+07 -108.120629  38.878134  1.574549e+07   3.0   \n",
      "1562  2485.057617  2.992329e+07 -108.120650  38.877954  1.574551e+07   3.0   \n",
      "1563  2484.001709  2.992329e+07 -108.120670  38.877776  1.574553e+07   3.0   \n",
      "1564  2482.650391  2.992329e+07 -108.120692  38.877596  1.574555e+07   3.0   \n",
      "1565  2480.888916  2.992329e+07 -108.120714  38.877415  1.574557e+07   3.0   \n",
      "1566  2478.289551  2.992329e+07 -108.120737  38.877235  1.574559e+07   3.0   \n",
      "1567  2476.312744  2.992329e+07 -108.120760  38.877056  1.574561e+07   3.0   \n",
      "1568  2474.250977  2.992329e+07 -108.120784  38.876876  1.574563e+07   3.0   \n",
      "1569  2471.119141  2.992329e+07 -108.120807  38.876697  1.574565e+07   3.0   \n",
      "1570  2466.728271  2.992329e+07 -108.120831  38.876517  1.574567e+07   3.0   \n",
      "1571  2462.703125  2.992329e+07 -108.120854  38.876337  1.574569e+07   3.0   \n",
      "1572  2460.100098  2.992329e+07 -108.120877  38.876158  1.574572e+07   3.0   \n",
      "1573  2456.655518  2.992329e+07 -108.120899  38.875978  1.574574e+07   3.0   \n",
      "1574  2452.065430  2.992329e+07 -108.120921  38.875798  1.574576e+07   3.0   \n",
      "1575  2448.225830  2.992329e+07 -108.120942  38.875618  1.574578e+07   3.0   \n",
      "1576  2445.600098  2.992329e+07 -108.120963  38.875439  1.574580e+07   3.0   \n",
      "1577  2443.143555  2.992329e+07 -108.120984  38.875261  1.574582e+07   3.0   \n",
      "1578  2438.661377  2.992329e+07 -108.121005  38.875079  1.574584e+07   3.0   \n",
      "1579  2432.530273  2.992329e+07 -108.121027  38.874899  1.574586e+07   3.0   \n",
      "1580  2426.199219  2.992329e+07 -108.121048  38.874719  1.574588e+07   3.0   \n",
      "1581  2420.299072  2.992329e+07 -108.121070  38.874540  1.574590e+07   3.0   \n",
      "\n",
      "      beam      p_b                                      geometry  \n",
      "0      0.0  1.0_0.0  POINT (-107.9935577984432 39.29995895669115)  \n",
      "1      0.0  1.0_0.0  POINT (-107.9936011471554 39.29959941911081)  \n",
      "2      0.0  1.0_0.0   POINT (-107.993622663836 39.29941964676151)  \n",
      "3      0.0  1.0_0.0  POINT (-107.9936449233582 39.29923991143517)  \n",
      "4      0.0  1.0_0.0  POINT (-107.9936673743222 39.29906020196472)  \n",
      "5      0.0  1.0_0.0  POINT (-107.9936903770442 39.29888054198841)  \n",
      "6      0.0  1.0_0.0  POINT (-107.9937132762043 39.29870085622966)  \n",
      "7      0.0  1.0_0.0  POINT (-107.9937359116625 39.29852115831367)  \n",
      "8      0.0  1.0_0.0  POINT (-107.9937584879494 39.29834145651863)  \n",
      "9      0.0  1.0_0.0  POINT (-107.9937807851115 39.29816174380526)  \n",
      "10     0.0  1.0_0.0  POINT (-107.9938031564662 39.29798201975401)  \n",
      "11     0.0  1.0_0.0  POINT (-107.9938256297581 39.29780231075313)  \n",
      "12     0.0  1.0_0.0  POINT (-107.9938481186253 39.29762260210313)  \n",
      "13     0.0  1.0_0.0   POINT (-107.9938704559148 39.2974428922554)  \n",
      "14     0.0  1.0_0.0   POINT (-107.9938925489225 39.2972631457702)  \n",
      "15     0.0  1.0_0.0  POINT (-107.9939146969898 39.29708341232008)  \n",
      "16     0.0  1.0_0.0  POINT (-107.9939365976218 39.29690366105702)  \n",
      "17     0.0  1.0_0.0  POINT (-107.9939578084473 39.29672386721194)  \n",
      "18     0.0  1.0_0.0  POINT (-107.9939786608743 39.29654402730493)  \n",
      "19     0.0  1.0_0.0  POINT (-107.9939996041492 39.29636420374372)  \n",
      "20     0.0  1.0_0.0   POINT (-107.9940206371028 39.2961843868645)  \n",
      "21     0.0  1.0_0.0   POINT (-107.994041729869 39.29600458273248)  \n",
      "22     0.0  1.0_0.0  POINT (-107.9940628690493 39.29582476568972)  \n",
      "23     0.0  1.0_0.0  POINT (-107.9940841349122 39.29564496638142)  \n",
      "24     0.0  1.0_0.0  POINT (-107.9941054554761 39.29546516950141)  \n",
      "25     0.0  1.0_0.0  POINT (-107.9941273744798 39.29528542767446)  \n",
      "26     0.0  1.0_0.0  POINT (-107.9941725402751 39.29492601794318)  \n",
      "27     0.0  1.0_0.0  POINT (-107.9941951775971 39.29474632984051)  \n",
      "28     0.0  1.0_0.0  POINT (-107.9942173341869 39.29456658845996)  \n",
      "29     0.0  1.0_0.0  POINT (-107.9942395080518 39.29438685631784)  \n",
      "...    ...      ...                                           ...  \n",
      "1552   1.0  3.0_1.0  POINT (-108.1204362945918 38.87975231802786)  \n",
      "1553   1.0  3.0_1.0  POINT (-108.1204585545128 38.87957260153709)  \n",
      "1554   1.0  3.0_1.0  POINT (-108.1204808136754 38.87939292318491)  \n",
      "1555   1.0  3.0_1.0   POINT (-108.1205030080346 38.8792131643885)  \n",
      "1556   1.0  3.0_1.0  POINT (-108.1205249915848 38.87903342606379)  \n",
      "1557   1.0  3.0_1.0  POINT (-108.1205467062486 38.87885367049233)  \n",
      "1558   1.0  3.0_1.0  POINT (-108.1205678504277 38.87867390223968)  \n",
      "1559   1.0  3.0_1.0  POINT (-108.1205883368799 38.87849401641292)  \n",
      "1560   1.0  3.0_1.0  POINT (-108.1206085447455 38.87831414807211)  \n",
      "1561   1.0  3.0_1.0  POINT (-108.1206288763857 38.87813428690998)  \n",
      "1562   1.0  3.0_1.0  POINT (-108.1206495311188 38.87795448523024)  \n",
      "1563   1.0  3.0_1.0  POINT (-108.1206704316467 38.87777573263286)  \n",
      "1564   1.0  3.0_1.0  POINT (-108.1206918293089 38.87759585730215)  \n",
      "1565   1.0  3.0_1.0   POINT (-108.120713945092 38.87741512466938)  \n",
      "1566   1.0  3.0_1.0  POINT (-108.1207368894634 38.87723549536111)  \n",
      "1567   1.0  3.0_1.0  POINT (-108.1207601505425 38.87705581569461)  \n",
      "1568   1.0  3.0_1.0  POINT (-108.1207836317526 38.87687619266064)  \n",
      "1569   1.0  3.0_1.0  POINT (-108.1208071989477 38.87669657400907)  \n",
      "1570   1.0  3.0_1.0  POINT (-108.1208307537614 38.87651698817717)  \n",
      "1571   1.0  3.0_1.0  POINT (-108.1208540483764 38.87633731703414)  \n",
      "1572   1.0  3.0_1.0  POINT (-108.1208767658126 38.87615763486885)  \n",
      "1573   1.0  3.0_1.0  POINT (-108.1208988557276 38.87597793869894)  \n",
      "1574   1.0  3.0_1.0  POINT (-108.1209206182405 38.87579814749559)  \n",
      "1575   1.0  3.0_1.0    POINT (-108.12094201903 38.87561836507023)  \n",
      "1576   1.0  3.0_1.0  POINT (-108.1209631051388 38.87543856234019)  \n",
      "1577   1.0  3.0_1.0  POINT (-108.1209837882443 38.87526109625878)  \n",
      "1578   1.0  3.0_1.0  POINT (-108.1210051581104 38.87507894406558)  \n",
      "1579   1.0  3.0_1.0  POINT (-108.1210265110713 38.87489915726057)  \n",
      "1580   1.0  3.0_1.0  POINT (-108.1210480968797 38.87471939245197)  \n",
      "1581   1.0  3.0_1.0  POINT (-108.1210698106977 38.87453966914137)  \n",
      "\n",
      "[9787 rows x 9 columns]\n"
     ]
    }
   ],
   "source": [
    "for x in ATL06_list:\n",
    "    print(gda_lib.ATL06_2_gdf(x,dataset_dict))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "ATL06_gdf_list = [gda_lib.ATL06_2_gdf(x,dataset_dict) for x in ATL06_list]\n",
    "ATL06_gdf_list = [x.to_crs(ds.crs) for x in ATL06_gdf_list]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig,ax = plt.subplots()\n",
    "im = ax.imshow(dem,cmap='inferno',extent=[xmin,xmax,ymin,ymax])\n",
    "plt.colorbar(im,label='HAE (m WGS84)')\n",
    "for gdf in ATL06_gdf_list:\n",
    "    gdf.plot(ax=ax)\n",
    "#ATL06_gdf.plot(ax=ax)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "df1,df2,df3,df4,df5,df6 = [x for x_,x in ATL06_gdf_list[1].groupby(ATL06_gdf_list[1]['p_b'])] #pick 1 ATL06 and seperate it into 6 beams"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_list = [df1,df2,df3,df4,df5,df6]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "ename": "ValueError",
     "evalue": "operands could not be broadcast together with shapes (882,) (2350,) ",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mValueError\u001b[0m                                Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-19-826cf5b69370>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m      6\u001b[0m     \u001b[0;31m#ymin=np.min(z_hp)+100\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      7\u001b[0m     \u001b[0;31m#ymax=np.max(z_hp)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 8\u001b[0;31m     \u001b[0mdiff\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mz_hp\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0mdf_list\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mh_li\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      9\u001b[0m     \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mscatter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx_atc\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mdiff\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mlabel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'DEM Elevation'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     10\u001b[0m     \u001b[0;31m#ax.scatter(df_list[i].x_atc.values,df_list[i].h_li.values,marker='^',c='red',s=8,label='ATL06') #this is nearest neighbour sampling\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/anaconda3/envs/icesat2-hackweek/lib/python3.6/site-packages/numpy/ma/core.py\u001b[0m in \u001b[0;36m__sub__\u001b[0;34m(self, other)\u001b[0m\n\u001b[1;32m   4083\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_delegate_binop\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mother\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   4084\u001b[0m             \u001b[0;32mreturn\u001b[0m \u001b[0mNotImplemented\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 4085\u001b[0;31m         \u001b[0;32mreturn\u001b[0m \u001b[0msubtract\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mother\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   4086\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   4087\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m__rsub__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mother\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/anaconda3/envs/icesat2-hackweek/lib/python3.6/site-packages/numpy/ma/core.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, a, b, *args, **kwargs)\u001b[0m\n\u001b[1;32m   1016\u001b[0m         \u001b[0;32mwith\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0merrstate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1017\u001b[0m             \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mseterr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdivide\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'ignore'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minvalid\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'ignore'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1018\u001b[0;31m             \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mda\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdb\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1019\u001b[0m         \u001b[0;31m# Get the mask for the result\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1020\u001b[0m         \u001b[0;34m(\u001b[0m\u001b[0mma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmb\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mgetmask\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgetmask\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mb\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mValueError\u001b[0m: operands could not be broadcast together with shapes (882,) (2350,) "
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x576 with 6 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig,axs = plt.subplots(2,3,figsize=(12,8))\n",
    "for i,ax in enumerate(fig.axes):\n",
    "    x_atc,z_hp = gda_lib.sample_near_nbor(ds,df_list[i])\n",
    "    #xmin=np.min(x_atc)\n",
    "    ##xmax=xmin+1000    #np.min(x_atc)\n",
    "    #ymin=np.min(z_hp)+100\n",
    "    #ymax=np.max(z_hp)\n",
    "    diff = z_hp-df_list[i].h_li.values\n",
    "    ax.scatter(x_atc,diff,label='DEM Elevation')\n",
    "    #ax.scatter(df_list[i].x_atc.values,df_list[i].h_li.values,marker='^',c='red',s=8,label='ATL06') #this is nearest neighbour sampling\n",
    "    ax.legend()   \n",
    "    #ax.set_xlim([xmin,xmax])\n",
    "    #ax.set_ylim([ymin,ymax])\n",
    "plt.suptitle('Nearest neighbour sampling')\n",
    "#ax.scatter(gdf_6_p1b1.x_atc.values,gdf_6_p1b1.h_li.values,marker='^',c='red',s=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_test = gda_lib.buffer_sampler(ds,df_list[0],20,ret_gdf=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_test['snow_on_off'] = df_test['h_li']-df_test['med']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PathCollection at 0x7fb331092dd8>"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig,ax = plt.subplots()\n",
    "ax.scatter(df_test['x_atc'],df_test['snow_on_off'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "ename": "ValueError",
     "evalue": "operands could not be broadcast together with shapes (882,) (2350,) ",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mValueError\u001b[0m                                Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-23-20f9e47c89b0>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m      2\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0max\u001b[0m \u001b[0;32min\u001b[0m \u001b[0menumerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0maxes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      3\u001b[0m     \u001b[0mx_atc\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mz_hp\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgda_lib\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbuffer_sampler\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mds\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mdf_list\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m20\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m#this is buffer sampling\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m     \u001b[0mdiff\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mz_hp\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0mdf_list\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mh_li\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      5\u001b[0m     \u001b[0;31m#ax.scatter(x_atc,z_hp,label='DEM Elevation')\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      6\u001b[0m     \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mscatter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx_atc\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mdiff\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mlabel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'DEM Elevation'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mValueError\u001b[0m: operands could not be broadcast together with shapes (882,) (2350,) "
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x576 with 6 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig,axs = plt.subplots(2,3,figsize=(12,8))\n",
    "for i,ax in enumerate(fig.axes):\n",
    "    x_atc,z_hp = gda_lib.buffer_sampler(ds,df_list[i],20) #this is buffer sampling\n",
    "    diff = z_hp-df_list[i].h_li.values\n",
    "    #ax.scatter(x_atc,z_hp,label='DEM Elevation')\n",
    "    ax.scatter(x_atc,diff,label='DEM Elevation')\n",
    "    #ax.scatter(df_list[i].x_atc.values,df_list[i].h_li.values,marker='^',c='red',s=1,label='ATL06') \n",
    "    ax.legend()   \n",
    "plt.suptitle('Buffer sampling with window radius of 20 m')\n",
    "#ax.scatter(gdf_6_p1b1.x_atc.values,gdf_6_p1b1.h_li.values,marker='^',c='red',s=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "#not important from here on"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [],
   "source": [
    "def mask_by_shp(geom,array,ds,reverse=False): \n",
    "    if (type(ds) == rasterio.io.DatasetReader):\n",
    "        transform = ds.transform\n",
    "    else:\n",
    "        transform = affine.Affine.from_gdal(*ds.GetGeoTransform())\n",
    "    shp = features.rasterize(geom,out_shape=np.shape(array),fill=-9999,transform=transform,dtype=float)\n",
    "    shp_mask = np.ma.masked_where(shp==-9999,shp)\n",
    "    if reverse:\n",
    "        req_mask = ~shp_mask.mask\n",
    "    else:\n",
    "        req_mask = shp_mask.mask\n",
    "    masked_array = np.ma.array(array,mask=req_mask)\n",
    "    return masked_array"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [],
   "source": [
    "def median_profile(ds,geom,buff,val='med'):\n",
    "    \"\"\"\n",
    "    sample values from raster at the given ICESat-2 points\n",
    "    using a buffer distance, and return median/mean\n",
    "    \"\"\"\n",
    "    # reproject the shapefile to raster projection\n",
    "    x_min,y_min,x_max,y_max = ds.bounds\n",
    "    geom = geom.to_crs(ds.crs)\n",
    "    #filter geom outside bounds \n",
    "    geom = geom.cx[x_min:x_max,y_min:y_max]\n",
    "    #adjust for no data\n",
    "    no_data = get_ndv(ds)\n",
    "    array = ds.read(1)\n",
    "    array = np.ma.masked_equal(array,no_data)\n",
    "    geom['geometry'] = geom.geometry.buffer(buff)\n",
    "   # print(type(geom))\n",
    "    out_list = []\n",
    "    for i,row in geom.iterrows():\n",
    "       # print(type(row))\n",
    "        poly_array =  mask_by_shp(GeoSeries(row.geometry),array,ds)\n",
    "        if val == 'med':\n",
    "            out = np.ma.median(poly_array)\n",
    "        else:\n",
    "            out = np.ma.mean(poly_array)\n",
    "        out_list.append(out)\n",
    "    return geom.x_atc.values, out_list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {},
   "outputs": [],
   "source": [
    "array = ds.read(1,masked=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.series.Series'>\n",
      "<class 'pandas.core.series.Series'>\n",
      "<class 'pandas.core.series.Series'>\n",
      "<class 'pandas.core.series.Series'>\n",
      "<class 'pandas.core.series.Series'>\n",
      "<class 'pandas.core.series.Series'>\n"
     ]
    },
    {
     "ename": "KeyboardInterrupt",
     "evalue": "",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mKeyboardInterrupt\u001b[0m                         Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-54-40156ade5297>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mmedian_profile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mds\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mdf_list\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m20\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;32m<ipython-input-53-b20005514e39>\u001b[0m in \u001b[0;36mmedian_profile\u001b[0;34m(ds, geom, buff, val)\u001b[0m\n\u001b[1;32m     20\u001b[0m         \u001b[0mpoly_array\u001b[0m \u001b[0;34m=\u001b[0m  \u001b[0mmask_by_shp\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mGeoSeries\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrow\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgeometry\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     21\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mval\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'med'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 22\u001b[0;31m             \u001b[0mout\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mma\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmedian\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpoly_array\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     23\u001b[0m         \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     24\u001b[0m             \u001b[0mout\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mma\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmean\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpoly_array\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/srv/conda/lib/python3.6/site-packages/numpy/ma/extras.py\u001b[0m in \u001b[0;36mmedian\u001b[0;34m(a, axis, out, overwrite_input, keepdims)\u001b[0m\n\u001b[1;32m    692\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    693\u001b[0m     r, k = _ureduce(a, func=_median, axis=axis, out=out,\n\u001b[0;32m--> 694\u001b[0;31m                     overwrite_input=overwrite_input)\n\u001b[0m\u001b[1;32m    695\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0mkeepdims\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    696\u001b[0m         \u001b[0;32mreturn\u001b[0m \u001b[0mr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreshape\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/srv/conda/lib/python3.6/site-packages/numpy/lib/function_base.py\u001b[0m in \u001b[0;36m_ureduce\u001b[0;34m(a, func, **kwargs)\u001b[0m\n\u001b[1;32m   3403\u001b[0m         \u001b[0mkeepdim\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mndim\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   3404\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3405\u001b[0;31m     \u001b[0mr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   3406\u001b[0m     \u001b[0;32mreturn\u001b[0m \u001b[0mr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkeepdim\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   3407\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/srv/conda/lib/python3.6/site-packages/numpy/ma/extras.py\u001b[0m in \u001b[0;36m_median\u001b[0;34m(a, axis, out, overwrite_input)\u001b[0m\n\u001b[1;32m    713\u001b[0m             \u001b[0masorted\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    714\u001b[0m     \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 715\u001b[0;31m         \u001b[0masorted\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msort\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfill_value\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfill_value\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    716\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    717\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0maxis\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/srv/conda/lib/python3.6/site-packages/numpy/ma/core.py\u001b[0m in \u001b[0;36msort\u001b[0;34m(a, axis, kind, order, endwith, fill_value)\u001b[0m\n\u001b[1;32m   6709\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mMaskedArray\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   6710\u001b[0m         a.sort(axis=axis, kind=kind, order=order,\n\u001b[0;32m-> 6711\u001b[0;31m                endwith=endwith, fill_value=fill_value)\n\u001b[0m\u001b[1;32m   6712\u001b[0m     \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   6713\u001b[0m         \u001b[0ma\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msort\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkind\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mkind\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0morder\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/srv/conda/lib/python3.6/site-packages/numpy/ma/core.py\u001b[0m in \u001b[0;36msort\u001b[0;34m(self, axis, kind, order, endwith, fill_value)\u001b[0m\n\u001b[1;32m   5559\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   5560\u001b[0m         sidx = self.argsort(axis=axis, kind=kind, order=order,\n\u001b[0;32m-> 5561\u001b[0;31m                             fill_value=fill_value, endwith=endwith)\n\u001b[0m\u001b[1;32m   5562\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   5563\u001b[0m         \u001b[0mself\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m...\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtake_along_axis\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msidx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/srv/conda/lib/python3.6/site-packages/numpy/ma/core.py\u001b[0m in \u001b[0;36margsort\u001b[0;34m(self, axis, kind, order, endwith, fill_value)\u001b[0m\n\u001b[1;32m   5406\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   5407\u001b[0m         \u001b[0mfilled\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfilled\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfill_value\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 5408\u001b[0;31m         \u001b[0;32mreturn\u001b[0m \u001b[0mfilled\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0margsort\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkind\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mkind\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0morder\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   5409\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   5410\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0margmin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfill_value\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mKeyboardInterrupt\u001b[0m: "
     ]
    }
   ],
   "source": [
    "median_profile(ds,df_list[2],20)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 115,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ds.nodata ==None"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'driver': 'GTiff', 'dtype': 'float32', 'nodata': None, 'width': 9955, 'height': 5857, 'count': 1, 'crs': CRS.from_epsg(32612), 'transform': Affine(3.0, 0.0, 746619.0,\n",
       "       0.0, -3.0, 4338012.0), 'tiled': False, 'interleave': 'band'}"
      ]
     },
     "execution_count": 116,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ds.profile"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "import gdal\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "band = gdal.Open(dem_fn,2).GetRasterBand(1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<osgeo.gdal.Band; proxy of <Swig Object of type 'GDALRasterBandShadow *' at 0x7fba046ed4e0> >"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "band"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "band.GetNoDataValue()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'band' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-1-3d48d74b448b>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mband\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mGetNoDataValue\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m: name 'band' is not defined"
     ]
    }
   ],
   "source": [
    "band.GetNoDataValue()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_ndv(ds):\n",
    "    no_data = ds.nodatavals[0]\n",
    "    if no_data == None:\n",
    "        #this means no data is not set in tif tag, nead to cheat it from raster\n",
    "        ndv = ds.read(1)[0,0]\n",
    "    else:\n",
    "        ndv = no_data\n",
    "    return ndv"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "masked_array(\n",
       "  data=[[--, --, --, ..., --, --, --],\n",
       "        [--, --, --, ..., --, --, --],\n",
       "        [--, --, --, ..., --, --, --],\n",
       "        ...,\n",
       "        [--, --, --, ..., --, --, --],\n",
       "        [--, --, --, ..., --, --, --],\n",
       "        [--, --, --, ..., --, --, --]],\n",
       "  mask=[[ True,  True,  True, ...,  True,  True,  True],\n",
       "        [ True,  True,  True, ...,  True,  True,  True],\n",
       "        [ True,  True,  True, ...,  True,  True,  True],\n",
       "        ...,\n",
       "        [ True,  True,  True, ...,  True,  True,  True],\n",
       "        [ True,  True,  True, ...,  True,  True,  True],\n",
       "        [ True,  True,  True, ...,  True,  True,  True]],\n",
       "  fill_value=1e+20,\n",
       "  dtype=float32)"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dem"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_buffered = df_list[5].copy()\n",
    "df_buffered['geometry'] = df_buffered.geometry.buffer(20)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [],
   "source": [
    "dem_filled = np.ma.filled(dem,np.nan)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[nan, nan, nan, ..., nan, nan, nan],\n",
       "       [nan, nan, nan, ..., nan, nan, nan],\n",
       "       [nan, nan, nan, ..., nan, nan, nan],\n",
       "       ...,\n",
       "       [nan, nan, nan, ..., nan, nan, nan],\n",
       "       [nan, nan, nan, ..., nan, nan, nan],\n",
       "       [nan, nan, nan, ..., nan, nan, nan]], dtype=float32)"
      ]
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dem_filled"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [],
   "source": [
    "import rasterstats as rs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {},
   "outputs": [],
   "source": [
    "profile_stats = gpd.GeoDataFrame.from_features(rs.zonal_stats(df_buffered,dem,affine=ds.transform,geojson_out=True,stats=\"median\",nodata=-9999))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [],
   "source": [
    "profile_stats = profile_stats.rename(columns={'median':'med'})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>beam</th>\n",
       "      <th>delta_time</th>\n",
       "      <th>filename</th>\n",
       "      <th>geometry</th>\n",
       "      <th>h_li</th>\n",
       "      <th>latitude</th>\n",
       "      <th>longitude</th>\n",
       "      <th>med</th>\n",
       "      <th>p_b</th>\n",
       "      <th>pair</th>\n",
       "      <th>x_atc</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.0</td>\n",
       "      <td>2.992328e+07</td>\n",
       "      <td>/home/jovyan/data/gm_noCoverage_ICESat2/proces...</td>\n",
       "      <td>POLYGON ((752773.3263820586 4354161.339010223,...</td>\n",
       "      <td>2109.107178</td>\n",
       "      <td>39.299962</td>\n",
       "      <td>-108.068931</td>\n",
       "      <td>NaN</td>\n",
       "      <td>3.0_1.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.569845e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.0</td>\n",
       "      <td>2.992328e+07</td>\n",
       "      <td>/home/jovyan/data/gm_noCoverage_ICESat2/proces...</td>\n",
       "      <td>POLYGON ((752771.9874215935 4354141.33305324, ...</td>\n",
       "      <td>2103.466797</td>\n",
       "      <td>39.299782</td>\n",
       "      <td>-108.068954</td>\n",
       "      <td>NaN</td>\n",
       "      <td>3.0_1.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.569847e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.0</td>\n",
       "      <td>2.992328e+07</td>\n",
       "      <td>/home/jovyan/data/gm_noCoverage_ICESat2/proces...</td>\n",
       "      <td>POLYGON ((752770.6514802576 4354121.325010256,...</td>\n",
       "      <td>2094.860352</td>\n",
       "      <td>39.299603</td>\n",
       "      <td>-108.068977</td>\n",
       "      <td>NaN</td>\n",
       "      <td>3.0_1.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.569849e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.0</td>\n",
       "      <td>2.992328e+07</td>\n",
       "      <td>/home/jovyan/data/gm_noCoverage_ICESat2/proces...</td>\n",
       "      <td>POLYGON ((752769.3620773242 4354101.314930591,...</td>\n",
       "      <td>2086.094971</td>\n",
       "      <td>39.299423</td>\n",
       "      <td>-108.068999</td>\n",
       "      <td>NaN</td>\n",
       "      <td>3.0_1.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.569851e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.0</td>\n",
       "      <td>2.992328e+07</td>\n",
       "      <td>/home/jovyan/data/gm_noCoverage_ICESat2/proces...</td>\n",
       "      <td>POLYGON ((752768.0751188451 4354081.304702571,...</td>\n",
       "      <td>2074.346680</td>\n",
       "      <td>39.299243</td>\n",
       "      <td>-108.069021</td>\n",
       "      <td>NaN</td>\n",
       "      <td>3.0_1.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.569853e+07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   beam    delta_time                                           filename  \\\n",
       "0   1.0  2.992328e+07  /home/jovyan/data/gm_noCoverage_ICESat2/proces...   \n",
       "1   1.0  2.992328e+07  /home/jovyan/data/gm_noCoverage_ICESat2/proces...   \n",
       "2   1.0  2.992328e+07  /home/jovyan/data/gm_noCoverage_ICESat2/proces...   \n",
       "3   1.0  2.992328e+07  /home/jovyan/data/gm_noCoverage_ICESat2/proces...   \n",
       "4   1.0  2.992328e+07  /home/jovyan/data/gm_noCoverage_ICESat2/proces...   \n",
       "\n",
       "                                            geometry         h_li   latitude  \\\n",
       "0  POLYGON ((752773.3263820586 4354161.339010223,...  2109.107178  39.299962   \n",
       "1  POLYGON ((752771.9874215935 4354141.33305324, ...  2103.466797  39.299782   \n",
       "2  POLYGON ((752770.6514802576 4354121.325010256,...  2094.860352  39.299603   \n",
       "3  POLYGON ((752769.3620773242 4354101.314930591,...  2086.094971  39.299423   \n",
       "4  POLYGON ((752768.0751188451 4354081.304702571,...  2074.346680  39.299243   \n",
       "\n",
       "    longitude  med      p_b  pair         x_atc  \n",
       "0 -108.068931  NaN  3.0_1.0   3.0  1.569845e+07  \n",
       "1 -108.068954  NaN  3.0_1.0   3.0  1.569847e+07  \n",
       "2 -108.068977  NaN  3.0_1.0   3.0  1.569849e+07  \n",
       "3 -108.068999  NaN  3.0_1.0   3.0  1.569851e+07  \n",
       "4 -108.069021  NaN  3.0_1.0   3.0  1.569853e+07  "
      ]
     },
     "execution_count": 94,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "profile_stats.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "d2ae0375224245edbcd23b9854c3a519",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "FigureCanvasNbAgg()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PathCollection at 0x7fb9a8c915f8>"
      ]
     },
     "execution_count": 90,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "fig,ax = plt.subplots()\n",
    "ax.scatter(profile_stats.x_atc.values,profile_stats.med.values)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {},
   "outputs": [],
   "source": [
    "def buffer_sampler(ds,geom,buffer,val='median',ret_gdf=False):\n",
    "    \"\"\"\n",
    "    sample values from raster at the given ICESat-2 points\n",
    "    using a buffer distance, and return median/mean or a full gdf ( if return gdf=True)\n",
    "    Inputs = rasterio dataset, Geodataframe containing points, buffer distance, output value = median/mean (default median)\n",
    "    and output format list of x_atc,output_value arrays (default) or  full gdf\n",
    "    \"\"\"\n",
    "    ndv = get_ndv(ds)\n",
    "    array = ds.read(1)\n",
    "    gt = ds.transform\n",
    "    stat = val\n",
    "    geom = geom.to_crs(ds.crs)\n",
    "    geom['geometry'] = geom.geometry.buffer(buffer)\n",
    "    json_stats = rs.zonal_stats(geom,array,affine=gt,geojson_out=True,stats=stat,nodata=ndv)\n",
    "    gdf = gpd.GeoDataFrame.from_features(json_stats)\n",
    "    if val =='median':\n",
    "        gdf = gdf.rename(columns={'median':'med'})\n",
    "        call = 'med'\n",
    "    else:\n",
    "        gdf = gdf.rename(columns={'mean':'avg'})\n",
    "        call = 'avg'\n",
    "    if ret_gdf:\n",
    "        out_file = gdf\n",
    "    else:\n",
    "        out_file = [gdf.x_atc.values,gdf[call].values]\n",
    "    return out_file"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from topolib import gda_lib"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "x,y = gda_lib.buffer_sampler(ds,df_list[5],20,'mean')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "/home/jovyan/topohack/ShashankBice\n"
     ]
    }
   ],
   "source": [
    "!pwd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
